mysql列不与第一行的值匹配,MySQL错误:“列数与第1行的值数不匹配”; -初学者帮助...

博主在尝试使用PHP向MySQL数据库中注册用户时遇到问题,错误提示为'Column count doesn't match value count at row 1'。问题源于插入值的数量与表列的数量不匹配。尽管尝试了为自增的'user_id'字段插入空值,问题仍未解决。解决方案建议使用更易读且不易出错的INSERT INTO ... SET语法,并确保所有字段都有对应的值。
摘要由CSDN通过智能技术生成

basically, php & MySQL being used. I am a beginner.

What I am trying to do is registering a user to my database, so storing the form input to my users_tb.

get this error when I try inserting the values into the form:

"Column count doesn't match value count at row 1"

I thought it was because I wasn't inserting the user_id value (which is auto increment), so I tried inserting '' in my query for the user_id, but still no luck.

here is the query:

$query = "INSERT INTO users_tb (user_id, user_status, user_gender, user_firstname, user_surname, student_number,

user_email, user_dob, user_name, user_pass)

VALUES('','$status','$gender','$firstname','$surname','$hnumber','$dob','$username','$password')";

mysql_query($query) or die(mysql_error());

mysql_close();

whether that helps. If you need any other code just say.

just to make sure though, the inserts don't have to be in same order the fields are in the table do they?

many thanks,

解决方案

You're missing one value.

For queries this long with so many columns (and if you're inserting just one row), I'd suggest using the following INSERT syntax, which is much easier to read and less likely to cause problems.

$query = "INSERT INTO users_tb SET

user_status = '". mysql_real_escape_string($status) ."',

user_gender = '". mysql_real_escape_string($gender) ."',

user_firstname = '". mysql_real_escape_string($firstname) ."',

user_surname = '". mysql_real_escape_string($surname) ."',

student_number = '". mysql_real_escape_string($hnumber) ."',

user_email = '". mysql_real_escape_string($email) ."',

user_dob = '". mysql_real_escape_string($dob) ."',

user_name = '". mysql_real_escape_string($username) ."',

user_pass = '". mysql_real_escape_string($password) ."'";

mysql_query($query) or die(mysql_error());

mysql_close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值