我正在尝试通过
运行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的新手如何修复这种语法?
答案 0 :(得分:1)
应该是:
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_代替,使用它们几乎是一样的。
答案 1 :(得分:1)
来自the doc:
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扩展 - 这些扩展比{{{{}}更复杂一些3}},但这是值得的。
在2014年进入mysql扩展 将浪费时间 - 它已经被弃用了相当长的时间。以下是intro
页面上的内容:
自PHP 5.5.0起,此扩展程序已弃用,不建议使用 用于编写新代码,因为它将来会被删除。