4

单击“AD RECORD”按钮时出现以下错误:

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;
4

4 回答 4

12

您的数据库表有更多列,然后您将插入其中,因此您会收到错误消息。(您可能不代表您的用户 ID 字段,这可能是您的主键)。您需要在查询中指定数据用于哪些字段:

 $query = "INSERT INTO user_master (first_name, last_name, user_name, email) VALUES" . "('$first' , '$last' , '$user_name' , '$email')";
于 2012-06-26T16:25:30.137 回答
0

如果你的user_master表有类似idor的主键user_id,那么你可以做两件事:

  • 您可以在“id”字段上添加 auto_increment 属性
  • 为“id”添加主值。
于 2012-06-26T16:34:47.797 回答
0

我有同样的问题......我解决它的方法是确保不在我的整数值中放置逗号

因此,如果您在 html 表单中输入薪水,请不要在薪水图中使用逗号。(我正在按照教程点给出的示例。我认为薪水框应该包含一个逗号,但它导致了这个错误。)

于 2015-08-24T20:12:29.850 回答
0

确保您的 sql 查询在开始和结束括号附近没有空格。以下将导致您提到的错误:

$sql = "INSERT INTO table_name ( email, username ) VALUES ($userEmail,$username)"
于 2017-07-18T13:09:05.200 回答