您有一个简单的表、一个简单的 INSERT 查询和一个相当奇怪的结果。第二个 mysql_query 调用创建 2 条空记录,而不是单个空查询。为什么?
mysql_query("
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8");
mysql_query("INSERT INTO `users` SET `users`.`id` = NULL");
注意:在 phpMyAdmin 中运行查询会给出预期结果 - 创建一条记录。
编辑:
将以下 mysql_query
调用添加到代码片段的开头即可修复该问题。
mysql_query("DROP TABLE `users`");
编辑:
原来问题与 mod_rewrite ( related question ) 有关。
最佳答案
据我了解,您运行此脚本两次。
第一次脚本执行:
- 创建表。
- 插入行
第二次:
- 尝试创建表,但出现错误,因为表已存在,并且没有任何反应
- 插入第二行
尝试添加此行来检查错误 - 'echo mysql_error()."\n";'。例如-
mysql_query("
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8");
echo mysql_error()."\n";
关于php - 简单的 INSERT 查询创建 2 条记录而不是 1 条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7643991/