如果mysql表不存在则创建

2023-11-22

我不太使用 php/mysql,但我需要一个我认为相对简单的任务:检查表是否存在,如果不存在则创建它。我什至无法获得有用的错误消息,并且数据库中没有创建表。显然我的语法有问题。

<?php

    session_start();
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    // 1. CONNECT TO THE DB SERVER, confirm connection
    mysql_connect("localhost", "root", "") or die(mysql_error());
    echo "<p>Connected to MySQL</p>";
    $mysql_connexn = mysql_connect("localhost", "root", ""); // redundant ?

    // 2. CONNECT TO THE SPECIFIED DB, confirm connection
    $db = "weighttracker";
    mysql_select_db($db) or die(mysql_error());
    echo "<p>Connected to Database '$db'</p>";
    $db_connexn = mysql_select_db($db)or die(mysql_error("can\'t connect to $db"));

    // 3. if table doesn't exist, create it
    $table = "WEIGHIN_DATA";
    $query = "SELECT ID FROM " . $table;
    //$result = mysql_query($mysql_connexn, $query);
    $result = mysql_query($query, $mysql_connexn);

    if(empty($result)) {
        echo "<p>" . $table . " table does not exist</p>";
        $query = "CREATE TABLE IF NOT EXISTS WEIGHIN_DATA (
            id INT NOT NULL AUTO_INCREMENT,
            PRIMARY KEY(id),
            DATE    DATE NOT NULL,
            VALUE   SMALLINT(4) UNSIGNED NOT NULL
        )"
    }
    else {
        echo "<p>" . $table . "table exists</p>";
    } // else

?>

一些东西。

缺少分号;中和结束时)"

if(empty($result)) {
    echo "<p>" . $table . " table does not exist</p>";
    $query = "CREATE TABLE IF NOT EXISTS WEIGHIN_DATA (
        id INT NOT NULL AUTO_INCREMENT,
        PRIMARY KEY(id),
        DATE    DATE NOT NULL,
        VALUE   SMALLINT(4) UNSIGNED NOT NULL
    )" // <--- right there

这会导致/引发解析错误,例如:

解析错误:语法错误,意外的“}”...

除其他错误外,如我对您最初发布的代码的评论所示。

另外,你没有使用mysql_query在您的表创建中。

这里有一个mysqli_方法,我在这里注释掉了你的原始代码。

旁注:您正在使用ID为您的专栏$query = "SELECT ID FROM " . $table;然而你创建你的表和列id小写;两个字母大小写必须匹配。

<?php

session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);

$DB_HOST = "xxx"; // put your own data
$DB_NAME = "xxx"; // put your own data
$DB_USER = "xxx"; // put your own data
$DB_PASS = "xxx"; // put your own data


$conn = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($conn->connect_errno > 0) {
  die('Connection failed [' . $conn->connect_error . ']');
}



/*

    // 1. CONNECT TO THE DB SERVER, confirm connection
    mysql_connect("localhost", "root", "") or die(mysql_error());
    echo "<p>Connected to MySQL</p>";
    $mysql_connexn = mysql_connect("localhost", "root", ""); // redundant ?


    // 2. CONNECT TO THE SPECIFIED DB, confirm connection
    $db = "weighttracker";
    mysql_select_db($db) or die(mysql_error());
    echo "<p>Connected to Database '$db'</p>";
    $db_connexn = mysql_select_db($db)or die(mysql_error("can\'t connect to $db"));

    // 3. if table doesn't exist, create it
    $table = "WEIGHIN_DATA";
    $query = "SELECT ID FROM " . $table; // that should be id and not ID
    //$result = mysql_query($mysql_connexn, $query);
    $result = mysql_query($query, $mysql_connexn);


*/


    $table = "WEIGHIN_DATA";
    $query = "SELECT ID FROM " . $table; // that should be id and not ID
    //$result = mysql_query($mysql_connexn, $query); // your original code
    // however connection comes last in mysql method, unlike mysqli
    $result = mysqli_query($conn,$query);


if(empty($result)) {
    echo "<p>" . $table . " table does not exist</p>";
    $query = mysqli_query($conn,"CREATE TABLE IF NOT EXISTS WEIGHIN_DATA (
        id INT NOT NULL AUTO_INCREMENT,
        PRIMARY KEY(id),
        DATE    DATE NOT NULL,
        VALUE   SMALLINT(4) UNSIGNED NOT NULL
    )");
    }
    else {
        echo "<p>" . $table . "table exists</p>";
    } // else

?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果mysql表不存在则创建 的相关文章

  • 删除、截断或删除以清理 MySQL 中的表

    我正在尝试清理表格 但没有摆脱表格的实际结构 我有一个id自动递增的列 我不需要保留ID号 但我确实需要它来保持其自动递增的特性 我发现了删除和截断 但我担心其中之一会完全删除整个表 从而使未来的插入命令变得无用 如何从表中删除所有记录以便
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • MySQL小写自动转换

    我有多个在数据库表中写入数据的 Web 服务 我想针对特定字段自动将大写字符串转换为小写字符串 mysql 有没有执行此任务的函数 假设这是表 id name language 有时 在语言字段内 Web 服务会写入大写字符串 IT 我想直
  • filter_input() 何时删除 POST 变量的斜杠?

    我创建了一个小型 PHP 脚本 它在 PHP 5 2 17 的服务器上运行magic quotes gpc指令已启用 我没有对 php ini 文件的写访问权限 并且我想从用户输入中删除所有斜杠 即使magic quotes gpc指令被关
  • 正确的标头 php mysql blob 显示图像

    我正在尝试在我的 PHP 页面中显示来自 mysql blob 的图像 我知道这不是最佳实践 然后我会将其引入我的 iOS 应用程序中 我在设置页面标题时遇到问题 我认为需要将其设置为图像 所以 这显示了图像 但我不相信页眉是正确的 hea
  • 使用 DateTime 类计算日期差异时出错

    我正在尝试使用 DateTime 类 php gt 5 3 来计算 2 个日期的差异 手册中的示例简单明了 我尝试了该示例并且效果很好 但如果改变开始和结束日期 就会出现问题 this gt start date 2011 03 01 th
  • 根据类别 woocommerce 更改同一产品的默认变体值

    我正在研究一种根据其所属类别显示同一产品的默认变体值的方法 例如 我出售一张带有蓝色和红色选项的卡 当用户进入 一 类别时 我希望默认值为蓝色 如果他属于第二类 则该值将为红色 我发现了一个钩子woocommerce product def
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • Laravel 上传前如何压缩图像?

    我正在制作一个图片库网站 用户可以在其中上传任何图像 它们将显示在前端 我需要在不影响图像质量的情况下压缩图像 以减小图像大小 以便页面加载速度不会影响那么大 我使用以下代码来上传图像 rules array file gt require
  • 使用 IntlDateFormatter 转换非公历日期

    我应该如何使用将非公历日期转换为其他日历类型IntlDateFormatter 我要转换 1392 01 02 from persian to islamic日历 我尝试了以下代码 但它没有转换日历 formatter IntlDateFo
  • 在 PHP 中使用数组来比较用户名/密码

    我有以下 php 脚本 其中有一个用户名和密码 Username user1 Password pass1 if isset POST submitform Clean up the input values foreach POST as
  • PHP多图像文件上传并存储到文件夹和数据库

    我正在建立一个网站 向夜间狂欢者展示大城市夜总会场所和活动的列表 我正在尝试构建一个后端页面 管理员可以在其中添加俱乐部并输入信息 例如机构名称 位置 相对价格等 当然还有俱乐部的一些图像 每个俱乐部必须至少有一张图像 即主图像 可以有额外
  • 我应该使用排队系统来处理付款吗?

    我在用着Slim https www slimframework com和这个结合Stripe 的 PHP 库 https stripe com docs api php在我的应用程序中处理付款 一切都很好 但是直到最近 我在我的系统中发现
  • 除括号之间的内容外,所有内容均小写

    考虑以下字符串 LoReM FOO IPSUM dolor BAR Samet fooBar 我正在寻找一种方法来小写所有内容 除了 brackets 之间的内容应该被忽略 所以期望的输出是 lorem FOO ipsum dolor BA
  • ODBC 链接表中突然开始出现写入冲突消息

    我有一个 mySQL 数据库 用于跟踪我们的项目并驱动我们的网站显示其信息 为了方便更新数据库 我设置了一个使用 ODBC 连接 MySQL ODBC 5 1 来编辑数据的访问数据库 过去几个月一直运行良好 没有出现任何问题 然而 昨晚用户
  • PHP 中的坏词过滤器?

    我正在用 PHP 编写一个坏词过滤器 我在数组中有一个坏词列表 方法 clean text 的写法如下 public static function cleanse text originalstring if self is sorted
  • SimpleXML插入处理指令(样式表)

    我想集成一个XSL文件在一个XML给我的字符串php CURL命令 我试过这个 output XML gived me by curl option hotel simplexml load string output hotel gt a
  • 在 PHP 命令行上显示完整的堆栈跟踪

    Problem 我的 PHP 堆栈跟踪缩写为 Stack trace 0 www html table app create php 128 SoapClient gt call call Array 1 www html table ap
  • 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate() ?

    我正在尝试计算玩家每周玩游戏的次数 如下所示 player game objects extra select week WEEK games game date aggregate count Count week 但姜戈抱怨说 Fiel
  • MYSQL 按喜欢/不喜欢和受欢迎程度排序

    我有评论表 其中包括喜欢和不喜欢的内容 现在我在正确的顺序上遇到了问题 实际上 我的系统在顶部显示了最多点赞的评论 我正在 youtube 上寻找类似系统的东西 这意味着 100like 100dislikes 的评论的顺序高于 1 1 我

随机推荐

  • WPF Metro 窗口全屏

    我目前正在开发 WPF 应用程序 但我不知道如何使我的应用程序全屏显示 我正在使用 MahApps Metro 因此我的主窗口类型是 Controls MetroWindow 我试过这个
  • JPA Criteria API:查询子类的属性

    我有一个这样的类结构 Entity Inheritance strategy InheritanceType JOINED public abstract class Article private String aBaseProperty
  • Automagic 单元测试是否支持 Java 中的对象方法契约?

    在开发 Java 应用程序时 我经常重写对象方法 通常是 equals 和 hashCode 我想要某种方法来系统地检查我是否遵守每个类的对象方法合同 例如 我想要断言对于相等的对象 哈希码也相等的测试 我正在使用 JUnit 测试框架 所
  • 在 Android 应用程序中使用哪个 WebSocket 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想添加一个Service到我的 Android 应用程序 该应用程序在后台运行 持有WebSocket连接 可能需要几个小时甚至几天 并定期向服务
  • php 中按值调用和按引用调用之间的区别以及 $$ 的含义是什么?

    1 我想知道按值调用和按引用调用有什么区别php PHP 是按值调用还是按引用调用 2 我还想知道 登录 php 是什么意思 例如 a name a Paul echo name output is Paul 正如上面的例子 PHP 中的
  • 插入日期时动态智能日期掩码

    javascript 或 jQuery 是否有一种方法可以在键入关键输入以及复制并粘贴到文本框的日期时动态检测和更改 我正在尝试创建一个具有两位数字 例如月份 的功能文本框 由于月份可以是 1 12 之间的数字 我想强制第一个数字为 1 或
  • 在 C 中使用 fread 从 stdin 缓冲读取

    我正在尝试有效地阅读stdin通过使用setvbuf在 IOFBF 模式下 我是缓冲新手 我在寻找working例子 输入以两个整数开始 n k 下一个n输入行包含 1 个整数 目的是打印有多少个整数可以被整除k define BUFSIZ
  • 无需注册事件源即可写入 Windows 应用程序事件日志

    有没有办法写入此事件日志 或者至少是其他一些 Windows 默认日志 我不必注册事件源 是的 有一种方法可以写入您正在寻找的事件日志 您不需要创建新的源 只需使用现有的源 该源通常与事件日志的名称相同 并且在某些情况下 例如事件日志应用程
  • 如何从纬度和经度点获取城市名称?

    有没有办法使用 javascript 的谷歌地图 api 从纬度和经度点获取城市名称 如果可以的话我可以看一个例子吗 这就是所谓的反向地理编码 来自谷歌的文档 http code google com apis maps documenta
  • 返回按钮在 iOS 7 中不可见

    我对 iOS 7 有一些奇怪的问题 我有一个UINavigationBar在我的应用程序中 它非常适合 iOS 6 IOS 6 然而 当我尝试在 iOS 7 上运行它时 我的后退按钮消失了 它就在那里 仍然可以工作并且可以点击 但不可见 I
  • LoadLibrary project.dll 失败。指定的模块无法找到

    当我尝试注册我的 C ATL 项目的 32 位版本时 regsvr32 project dll 我收到此错误 LoadLibrary project dll failed The specified module could not be
  • 将通用 Class 参数限制为实现 Map 的类

    我正在尝试写一个Map建设者 构造函数之一将允许客户端指定类型Map他们希望建立 public class MapBuilder
  • 删除/替换列值中的特殊字符?

    我有一个表列 其中包含我想从中删除所有连字符的值 这些值可能包含多个连字符并且长度各不相同 示例 对于我想要替换的所有值123 ABCD efghi with 123ABCDefghi 删除所有连字符并更新表中所有列值的最简单方法是什么 您
  • Windows Python2.7 mysqldb安装错误

    我正在尝试为 Python 安装 mysqldb 我正在运行 pip install mysql python 我不断收到此错误 运行 build ext构建 mysql 扩展创建 build temp win32 2 7创建 build
  • 在 MVC 框架中的 Javascript 文件中使用内联 C#

    我正在尝试使用 MVC 框架让内联 C 在我的 JavaScript 文件中工作 我编写了这个小测试代码 document ready function alert 当此代码在视图内部使用时 它可以完美地工作 当我离开我的 aspx 视图并
  • AngularJS:将服务注入 HTTP 拦截器(循环依赖)

    我正在尝试为我的 AngularJS 应用程序编写一个 HTTP 拦截器来处理身份验证 这段代码可以工作 但我担心手动注入服务 因为我认为 Angular 应该自动处理这个问题 app config httpProvider functio
  • 如何在matlab中制作圆并在其中生成随机点

    hello i want to ask a question how to make a circle in matlab and mark its center and generate a certain number of rando
  • 何时使用无符号值而不是有符号值?

    什么时候适合使用无符号变量而不是有符号变量 那么在一个for loop 我听到了很多关于这个问题的意见 我想看看是否有任何类似的共识 for unsigned int i 0 i lt someThing length i SomeThin
  • Haskell 中的 IO Int 和类似单元测试

    From 九十九道 Haskell 问题 问题23 从列表中提取给定数量的随机选择的元素 这是部分解决方案 为简单起见 此代码仅从列表中选择一个元素 import System Random randomRIO randItem a gt
  • 如果mysql表不存在则创建

    我不太使用 php mysql 但我需要一个我认为相对简单的任务 检查表是否存在 如果不存在则创建它 我什至无法获得有用的错误消息 并且数据库中没有创建表 显然我的语法有问题