【问题标题】:One Table is not being created other is being created未创建一个表,正在创建另一个表
【发布时间】:2018-05-05 19:00:46
【问题描述】:

我正在使用 mysql 在我的数据库中创建表,这是我的代码:

mysqli_query($link, "CREATE TABLE IF NOT EXISTS `review` (
            `clients_id` int(15) NOT NULL AUTO_INCREMENT,
            `client_id` varchar(150) NOT NULL DEFAULT '',
            `rating` tinyint(2) NOT NULL DEFAULT '0',
            `proj_date` date NOT NULL DEFAULT '0000-00-00',
            `proj_desc` text NOT NULL DEFAULT '',
            `photoname` text NOT NULL,
            `companyname` text NOT NULL,
            `feedback` text NOT NULL,
            `status` tinyint(1) NOT NULL DEFAULT '0',
            `emailid` varchar(100) NOT NULL DEFAULT '',
            `customratings` varchar(100) NOT NULL DEFAULT '',
            `photo_option` varchar(100) NOT NULL DEFAULT '',
            `title` varchar(100) NOT NULL DEFAULT '',
            `citation` varchar(100) NOT NULL DEFAULT '',
            `date_option` varchar(100) NOT NULL DEFAULT '',
            `rating_option` varchar(100) NOT NULL DEFAULT '',
            PRIMARY KEY (`clients_id`),
            FULLTEXT KEY `feedback` (`feedback`)
            ) ENGINE=MyISAM  AUTO_INCREMENT=1") or mysqli_error($link);

但这并没有反映到我的数据库中?为什么我可能会出错?

但我尝试使用以下代码创建其他表

mysqli_query($link, "CREATE TABLE IF NOT EXISTS `setting` (
            `id` int(11) NOT NULL auto_increment,
            `script_url` text NOT NULL,
            `date` varchar(4) NOT NULL,
            `rateing` varchar(4) NOT NULL,
            `photo` varchar(4) NOT NULL,
            `dateformat` varchar(4) NOT NULL,
            `page_limit` int(4) NOT NULL,
            `proj_desc` varchar(4) NOT NULL,
            `companyname` varchar(4) NOT NULL,
            `text_color` varchar(255) NOT NULL,
            `citation_color` varchar(255) NOT NULL,
            `bg_color` varchar(255) NOT NULL,
            `border_color` varchar(255) NOT NULL,
            `ratingsformat` varchar(250) NOT NULL,
            `rating` varchar(250) NOT NULL,
            `customratings` varchar(250) NOT NULL,
            `speed` varchar(250) NOT NULL,
            `pagination` varchar(250) NOT NULL,
            `version` varchar(250) NOT NULL,
            `global_option` varchar(250) NOT NULL,
            PRIMARY KEY  (`id`)
            ) ENGINE=MyISAM AUTO_INCREMENT=0;
        ") or mysqli_error($link);

它被正确创建并且两个表都在同一个文件中

【问题讨论】:

  • 没有。您需要先创建表。
  • mysql 语法现在没问题(编辑后)——所以如果有问题,请检查 PHP 端或连接。
  • @ringø 我在同一个 php 文件中创建这些表,同时正在创建一个表而未创建另一个表。可能是什么问题?
  • 如果我删除了 DEFAULT ' ' in review ,则正在创建表。为什么会这样?

标签: php mysql sql create-table insert-into


【解决方案1】:

不,您不能使用插入语句创建表。

SQL 语句有四种类型:

  1. DML(数据操作语言)
  2. DDL(数据定义语言)
  3. DCL(数据控制语言)
  4. TCL(交易控制语言)

DML 是您的 SELECT、INSERT、UPDATE 和 DELETE 语句... DDL 是您的 CREATE、ALTER 和 DROP 语句。

See more info about types of SQL statements

为了在您的表中插入数据,首先您需要创建它。

How to create sql table from php

【讨论】:

  • 编辑了我的问题现在看看它
  • @Nawaz,这是一个新的/不同的问题,我认为最好为此提出一个单独的问题。通过改变问题,所有答案都变得无关紧要。另外,如果您收到任何错误消息,请包括它们。
【解决方案2】:

没有。 “INSERT INTO”用于仅将数据插入现有表。您应该在尝试插入值之前创建具有相应列的表。

或者您可以在插入之前检查表是否存在。“如果存在”您可以插入值,否则只需创建并插入值。

【讨论】:

    【解决方案3】:

    这对我有用,但我不知道如何?

    我刚刚在创建审核表时删除了 DEFAULT '' present 和刚刚创建的表 这是编辑的代码

    mysqli_query($link, "CREATE TABLE IF NOT EXISTS `review` (
                `clients_id` int(15) NOT NULL AUTO_INCREMENT,
                `client_id` varchar(150) NOT NULL,
                `rating` tinyint(2) NOT NULL,
                `proj_date` date NOT NULL,
                `proj_desc` text NOT NULL,
                `photoname` text NOT NULL,
                `companyname` text NOT NULL,
                `feedback` text NOT NULL,
                `status` tinyint(1) NOT NULL,
                `emailid` varchar(100) NOT NULL,
                `customratings` varchar(100) NOT NULL,
                `photo_option` varchar(100) NOT NULL,
                `title` varchar(100) NOT NULL,
                `citation` varchar(100) NOT NULL,
                `date_option` varchar(100) NOT NULL,
                `rating_option` varchar(100) NOT NULL,
                PRIMARY KEY (`clients_id`),
                FULLTEXT KEY `feedback` (`feedback`)
                ) ENGINE=MyISAM  AUTO_INCREMENT=1") or mysqli_error($link);
    

    【讨论】:

    • 这导致我在插入数据时出现 1364 mysql 错误
    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多