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!
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.