列数与第 1 行 php mysql 的值计数不匹配
Posted
技术标签:
【中文标题】列数与第 1 行 php mysql 的值计数不匹配【英文标题】:Column count doesn't match value count at row 1 php mysql 【发布时间】:2012-06-28 00:45:07 【问题描述】:单击“广告记录”按钮时出现以下错误:
INSERT 失败:INSERT INTO user_master VALUES('cha' , 'rstein' , 'bar' , 'foo') 列数与第 1 行的值数不匹配
来自以下代码:
if (isset($_POST['delete']) && isset($_POST['first']))
$first = get_post('first');
$query = "DELETE FROM user_master WHERE first='$first'";
if(!mysql_query($query, $db_server))
echo "DELETE failed: $query<br />" .
mysql_error() . "<br /><br />";
if (isset($_POST['first']) && isset($_POST['last']) && isset($_POST['user_name']) && isset($_POST['email']))
$first = get_post('first');
$last = get_post('last');
$email = get_post('email');
$user_name = get_post('user_name');
$query = "INSERT INTO user_master VALUES" . "('$first' , '$last' , '$user_name' , '$email')";
if(!mysql_query($query, $db_server)) echo "INSERT failed: $query <br />" . mysql_error() . "<br /><br />";
echo <<<END
<form action = "willingLog.html" method="post"><pre>
First <input type="text" name="first" />
Last <input type="text" name="last" />
Email <input type="text" name="email" />
Username <input type="text" name="user_name" />
<input type="submit" value="AD RECORD" />
</pre></form>
END;
【问题讨论】:
php, MySQL error: Column count doesn't match value count at row 1 的可能重复项 同样的错误信息,有些不同的原因。另一方面,您可以数列并查看问题;在这里,你看不到user_master
表的列数(但你可以放心地预测列数不是4)。
【参考方案1】:
您的数据库表的列比您要插入的列多,因此您会遇到错误。 (您可能不代表您的用户 ID 字段,这可能是您的主键)。您需要在查询中指定数据用于哪些字段:
$query = "INSERT INTO user_master (first_name, last_name, user_name, email) VALUES" . "('$first' , '$last' , '$user_name' , '$email')";
【讨论】:
非常感谢您的回答。是的,我没有使用一个 id 字段,因为我认为它会自动递增。但是,我不明白你答案的最后一部分。你能详细说明一下吗?非常感谢。【参考方案2】:如果您的user_master
表有任何主键,例如id
或user_id
,那么您可以做两件事:
【讨论】:
user_master 表有一个 id 字段,它设置为自动递增。 是的我也是...那么解决方案如何?因为我所有的表都使用同名的主键:“id”:【参考方案3】:我遇到了同样的问题...我解决它的方法是确保不要在我的整数值中放置逗号。
因此,如果您在 html 表单中输入薪水,请不要在薪水数字中使用逗号。 (我按照教程点给出的例子。我认为工资框应该包含一个逗号,但它导致了这个错误。)
【讨论】:
【参考方案4】:确保您的 sql 查询在开始和结束括号附近没有空格。下面会导致你提到的错误:
$sql = "INSERT INTO table_name ( email, username ) VALUES ($userEmail,$username)"
【讨论】:
以上是关于列数与第 1 行 php mysql 的值计数不匹配的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:1136。列数与第 1 行的值计数不匹配,我找不到错误