我已经制作了以前工作正常的注册表单,但是在我的代码中进行了一些更改之后我遇到了错误“错误:列数与第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。
什么是解决此错误的最佳方法!
先谢谢!
答案 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);