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

データベーステーブルには、挿入するよりも多くの列があるため、エラーが発生しています。(おそらく、主キーである userID フィールドを表していない可能性があります)。クエリでデータの対象となるフィールドを指定する必要があります。

 $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テーブルにidまたはのような主キーがある場合、次user_idの 2 つのことを行うことができます。

  • 「id」フィールドにauto_increment属性を追加できます
  • 「id」のプライマリ値を追加します。
于 2012-06-26T16:34:47.797 に答える