列数与第1行插入表中的值计数不匹配
Ok. Ive been starting to make a forum from scratch and upon registering my browser comes up with this error: Column count doesn't match value count at row 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)
");
Ive checked this thousands of times...and I cannot see the problem!
好的。 我已经开始从头开始创建一个论坛,在注册我的浏览器后会出现这个错误:列数与第1行的值计数不匹配 p>
$ insert = mysql_query( “
INSERT INTO用户(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)
“);
code> pre>
我已经检查了数千次。 ..我看不出问题! p>
div>
you forget comma between
'" . sha1($password) . "''" . mysql_real_escape_string($email) . "'
^ HERE
to fix,
'" . sha1($password) . "', '" . mysql_real_escape_string($email) . "'
You are inserting six values into seven columns. The reason why there is no syntax error is because ''
is actually valid. It's a way to escape single quote by doubling it.
Your current query will look like this,
INSERT INTO tableName (col1, col2) VALUES ('hello''world')
which is actually valid but the number of values doesn't match the number of columns on the table.
'hello''world'
if successfully inserted on the table will become hello'world
.
You're missing a comma between the password and email fields:
sha1($password). "', '" ...
You should really use PDO
or mysqli
over mysql_*
, and bcrypt
over sha1
for passwords.