【发布时间】:2016-11-14 10:27:30
【问题描述】:
我有一个名为“users”的现有 MySQL(5.6.12 版)表,并试图通过 php(5.4.12 版)设置列默认值,例如:
$query = "ALTER TABLE users ALTER username SET DEFAULT NULL";
$result = mysqli_query($query);
但是,这会产生 SQL 错误(导致消息“查询为空”)。 'username' 是一个 VARCHAR(200) 类型的列。
使用带引号的文字(例如“John”)作为默认值会导致相同的错误。 (只是为了好玩,虽然我使用的是 MySQL,但我也尝试根据 SQL/MS Access 或 Oracle 语法修改查询,但它仍然不起作用。
我做错了什么?
编辑:问题已解决。上面的查询没问题,没有错。
我犯了一个令人难以置信的愚蠢错误,忘记了$ 在$query 前面的符号,即我的代码是写$result = mysqli_query(query);
(请注意,我是一名拥有数十年经验的程序员。)
【问题讨论】:
-
我猜这个命令应该是这样的:
ALTER TABLE users MODIFY.... -
它对你不起作用,因为 mysqli_query() 需要两个参数....查看手册
-
@1000111 猜得不错 - 但是 MODIFY 也不起作用。
-
@nospor 仅用于程序风格,不面向对象:见
http://php.net/manual/en/mysqli.query.php -
@1000111 并且 ALTER 是正确的:例如参见 tutorialspoint.com/mysql/mysql-alter-command.htm
标签: php mysql alter setdefault