我在使用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`
答案 0 :(得分:4)
我没有看到您的查询有任何问题。但是$tablename
的价值是多少?这里有两种错误可能性:
$tablename
为空。$tablename
是一个关键词。请检查以上两项,否则可以。
更新:
根据您更新的问题,请尝试使用以下代码。我认为它会对你有帮助。
$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表,表名必须以字母开头。当前的表名无效。