如果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表不存在则创建 的相关文章

  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • Mysql用in语句限制

    我正在写一个查询 SELECT user bookmarks id as user bookmark id bookmark id user bookmarks user id bookmark url bookmark website b
  • 生成大随机数 php [重复]

    这个问题在这里已经有答案了 我想使用 PHP 生成一个包含 75 个字符的数字 我到处寻找 但一无所获 除了这个 http dailycoding com tools RandomNumber aspx http dailycoding c
  • 删除行导致锁超时

    当我尝试从表中删除行时 我不断收到这些错误 这里的特殊情况是我可能同时运行5个进程 该表本身是一个 Innodb 表 约有 450 万行 我的 WHERE 子句中使用的列没有索引 其他指数按预期运行 这是在事务中完成的 首先删除记录 然后插
  • MySQL 与日语字符

    我试图弄清楚如何创建一个表 以便我可以在其中插入日语名字 现在我有 Type InnoDB Encoding UTF 8 Unicode utf8 Collation utf8 general ci 但是 当我插入字符时 它显示为 当我使用
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • mysql排序和排名语句

    我需要一些 mysql 语句的帮助 我的表 1 有 7 列 表 2 有 8 列 额外的列名为排名 我的语句应该是这样的 从表 1 中选择全部 然后按 用户数 排序 将其插入表 2 中并排名开始 1 2 3 等 table 1 usernam
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 在 apache docker 容器中运行虚拟主机

    我在同一个 apache 容器中有两个 php 应用程序 我试图在端口上运行其中一个应用程序 因为它需要通过根域而不是子文件夹进行访问 我想在端口 8060 上运行应用程序 我尝试使用 apache 虚拟主机执行此操作 但它不会加载页面 h
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 内部 while 循环不工作

    这是我项目网页上的代码片段 这里我想显示用户选择的类别 然后想显示属于该类别的主题 在那里 用户可以拥有多个类别 这没有问题 我可以在第一个 while 循环中打印所有这些类别 问题是当我尝试打印主题时 结果只显示一行 但每个类别中有更多主
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐

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