SQL错误:列计数与第1行的值计数不匹配

时间:2013-05-01 18:10:31

标签: php sql database

我已经制作了以前工作正常的注册表单,但是在我的代码中进行了一些更改之后我遇到了错误“错误:列数与第1行的值计数不匹配”

<?php
$host = "localhost";
$user = "root";
$db_name= "login_stock";
$pass= "usbw";

$con = mysql_connect($host, $user, $pass);

if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("login_stock", $con);
$name=mysql_real_escape_string($_POST['name']); //This value has to be the same as in the HTML form file
$password=mysql_real_escape_string($_POST['password']); //This value has to be the same as in the HTML form file
$sql="INSERT INTO member_login (id,Name,Password, Allowance) VALUES (NULL,'$name','$password, 100000')";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "The form data was successfully added to your database.";
mysql_close($con);
?>
数据库中的

是一个自动递增的int和一个主键。但是,用户在注册时无需输入ID。

什么是解决此错误的最佳方法!

先谢谢!

2 个答案:

答案 0 :(得分:2)

除了错误的'之外,您可以从列列表中删除id

INSERT INTO member_login (Name,Password, Allowance) VALUES ('$name','$password', 100000)

您应该停止使用mysql_函数并使用预准备语句来防止SQL注入。

答案 1 :(得分:2)

INSERT INTO member_login (id,Name,Password, Allowance) 
VALUES (NULL,'$name','$password, 100000');

...只有3个值(第三个是字符串'$password, 100000')。你的意思可能只是引用密码;

INSERT INTO member_login (id,Name,Password, Allowance) 
VALUES (NULL,'$name','$password', 100000);