确定。我已经开始从头开始创建一个论坛,在注册我的浏览器后会出现这个错误:列数与第1行的值计数不匹配
$insert = mysql_query("
INSERT INTO users (user_id, user_name, user_pass, user_email, user_date, user_level, user_posts)
VALUES( '', '" . mysql_real_escape_string($username) . "', '" . sha1($password) . "''" . mysql_real_escape_string($email) . "', NOW(), 0, 0)
");
我已经检查了好几千次......我看不出问题!
答案 0 :(得分:2)
你忘记了
之间的逗号'" . sha1($password) . "''" . mysql_real_escape_string($email) . "'
^ HERE
修复,
'" . sha1($password) . "', '" . mysql_real_escape_string($email) . "'
您要将六个值插入七列。没有语法错误的原因是因为''
实际上是有效的。这是通过加倍来逃避单引号的一种方式。
您当前的查询将如下所示
INSERT INTO tableName (col1, col2) VALUES ('hello''world')
实际上有效,但值的数量与表上的列数不匹配。
'hello''world'
如果成功插入到表格中,则会hello'world
。
答案 1 :(得分:0)
您在密码和电子邮件字段之间缺少逗号:
sha1($password). "', '" ...
您应该使用PDO
或mysqli
优先于mysql_*
,bcrypt
优先于sha1
以获取密码。