用于创建表的php mysql错误

时间:2011-12-26 07:08:38

标签: php mysql create-table

我在使用mysql数据库在php中创建表时出错了,我尝试直接在mysql查询引擎上测试它运行正常。而在PHP代码中它给出了以下错误

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在附近使用正确的语法。

以下是我正在编写的代码

$query14 = mysql_query("create table $tablename (
                                           project_id INT,
                                           project_client_id INT, 
                                           project_partner_id INT, 
                                           project_manager_id INT,
                                           project_employees INT, 
                                           project_name VARCHAR(500), 
                                           project_status TEXT,
                                           project_summary LONGTEXT, 
                                           project_order INT, 
                                           project_start_date DATETIME,
                                           project_end_date DATETIME
                                         ) ENGINE = INNODB;");

及以下是附加的图像和表结构应该是,这是我使用phpmyadmin接口创建的示例表。 以下是完整错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''8' (project_id INT, project_client_id INT, project_partner_id INT, project_mana' at line 1`

enter image description here

5 个答案:

答案 0 :(得分:4)

我没有看到您的查询有任何问题。但是$tablename的价值是多少?这里有两种错误可能性:

  1. 变量$tablename为空。
  2. $tablename是一个关键词。
  3. 请检查以上两项,否则可以。

    更新:

    根据您更新的问题,请尝试使用以下代码。我认为它会对你有帮助。

    $query14 = mysql_query("create table `$tablename` (
                                               `project_id` INT,
                                               `project_client_id` INT, 
                                               `project_partner_id` INT, 
                                               `project_manager_id` INT,
                                               `project_employees` INT, 
                                               `project_name` VARCHAR(500), 
                                               `project_status` TEXT,
                                               `project_summary` LONGTEXT, 
                                               `project_order` INT, 
                                               `project_start_date` DATETIME,
                                               `project_end_date` DATETIME
                                             ) ENGINE = INNODB;");
    

答案 1 :(得分:1)

您的查询语法很好,看起来$ tablename为空。

答案 2 :(得分:0)

我认为问题是$ tablename被替换的内容。

拥有完整的代码示例在调试错误时会更有用。

mysql的创建语句在mysql 5.1.58上运行得很好。

答案 3 :(得分:0)

正如您在上面的评论中所说,在回显$tablename之后,您获得了值8,那么就无法创建表格。

您必须将$tablename的值重命名为tbl_8

记住名字tbl-8,你也有错误,

答案 4 :(得分:0)

问题是,$ tablename目前是8,对于SQL表,表名必须以字母开头。当前的表名无效。