[英]creating table in php mysql with quotation
我正在尝试通过运行php mysql查询
mysql_query("CREATE TABLE `user` (`id` NOT NULL INT,`username` VARCHAR(30),`password` VARCHAR(30))");
它给我错误
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 'NOT NULL INT,`username` VARCHAR(30),`password` VARCHAR(30))'
我是php mysql的新手,如何修复此语法?
它应该是:
mysql_query("CREATE TABLE `user` (`id` INT NOT NULL ,`username` VARCHAR(30),`password` VARCHAR(30))");
不:
mysql_query("CREATE TABLE `user` (`id` NOT NULL INT,`username` VARCHAR(30),`password` VARCHAR(30))");
顺便说一句,不要使用不推荐使用的mysql_函数,在以后的php版本中,它们将被删除。 改用mysqli_,使用它们几乎相同。
从文档 :
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
...
create_definition:
col_name column_definition
...
column_definition:
data_type [NOT NULL | NULL]
[DEFAULT default_value]
[AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
...
data_type:
BIT[(length)]
...
| INT[(length)] [UNSIGNED] [ZEROFILL]
换句话说, INT
(或任何数据类型定义 )应始终位于NOT NULL
(或NULL
) 修饰符之前 。 实际上,对于任何修饰符DEFAULT
, AUTO_INCREMENT
, UNIQUE
等等,都是如此。
附带说明一下,即使您正在PHP-MySQL中迈出第一步,我还是建议您开始学习mysqli或PDO扩展-这些扩展比mysql更复杂,但这是值得的。
在2014年开始使用mysql扩展将是浪费时间-已经过了很长时间了。 这是在intro
页上说的:
自PHP 5.5.0起不推荐使用该扩展,不建议编写新代码,因为将来会删除该扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.