“列数与第1行的值计数不匹配”

时间:2012-07-07 20:57:52

标签: php mysql

  

可能重复:
  Mysql & PHP Error: Column count doesn't match value count at row 1

我正在尝试在PHP中创建一个帐户注册表单。我已将它连接到我的MySQL数据库,但在我尝试使用表单注册后,我收到了标题中的错误。

if(isset ($_POST['submit']))
{
    include( 'connection.php' );

    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];

    if(empty($username) || empty($email) || empty($password))
    {
        echo 'Please check the required fields.';
    }
    elseif(!filter_var($email,FILTER_VALIDATE_EMAIL))
    {
        echo 'Please enter a correct email address.';
    }
    else
    {
        $password = md5($password);
        $sql = mysql_query("INSERT INTO users (email,username,password) VALUES ('$email','$username','$password',now())") or die(mysql_error());

        if($sql)
        {
            echo 'Successfully submitted.';
        }
    }   
}

3 个答案:

答案 0 :(得分:3)

3列:

$sql = mysql_query("INSERT INTO users (email,username,password)

4个值:

  VALUES ('$email','$username','$password',now())") ...

答案 1 :(得分:3)

查看你的插入语句,你错过了一个专栏

INSERT INTO users (email,username,password) VALUES ('$email','$username','$password',now())

最后一个值“now()”没有相应的列名...我猜你错过了像date_added这样的东西?

答案 2 :(得分:1)

您的sql语句中存在不匹配:

INSERT INTO用户(电子邮件,用户名,密码)VALUES('$ email','$ username','$ password',now())

只有3列指定了“电子邮件,用户名,密码”,但您要为其添加四个值。