-5

このエラーが発生し続けます:

INSERT が失敗しました: INSERT INTO clientcontact VALUES('Don Jones', 'Walmart', 'need help', 'don@icsbranch.net', '772-991-0122') 列の数が行 1 の値の数と一致しません

自動インクリメント ID フィールドである get_post 関数から NULL フィールドを渡そうとしています。ユーザーがフォームに入力し、inquiryID が自動入力された状態で情報をデータベースに入力できるように、何を変更する必要があるのか​​ 疑問に思っています。

<?php 

require_once 'login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);

if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db($db_database, $db_server)
or die("Unable to select database: " . mysql_error());

{
$name   = get_post('name');
$company   = get_post('company');
$description = get_post('description');
$email     = get_post('email');
$phone    = get_post('phone');
$inquiryID = get_post('inquiryID');


$query = "INSERT INTO clientcontact VALUES" .
    "('$name', '$company', '$description', '$email', '$phone', NULL)";

if (!mysql_query($query, $db_server))
    echo "INSERT failed: $query<br />" .
    mysql_error() . "<br /><br />";
}

echo <<<_END
<form action="index.php" method="post"><pre>
       Name: <input type="text" name="name" />
    Company: <input type="text" name="company" />
    Inquiry Details: <input type="text" name="description" />
     E-Mail: <input type="text" name="email" />
   Phone Number: <input type="text" name="phone" />
     <input type="submit" value="ADD RECORD" />

</pre></form>
_END;

mysql_close($db_server);

function get_post($var)
{
return mysql_real_escape_string($_POST[$var]);
}
?>
4

3 に答える 3

2

次のことを行ってください。

  1. プロパティ Auto Increment を持つ列 og 主キーがあることをクロス チェックします。
  2. 挿入クエリを作成するには、次のように VALUE キーワードの前に列名を追加してください。

    INSERT INTO TABLENAME (COLUMN1, COLUMN2, COLUMN3) VALUES (value1, value2, value3)

列と値セットの自動インクリメント フィールドは無視してください。したがって、クエリは次のようになります

$query = "INSERT INTO clientcontact (name_column, company_column, desc_column, email_column, phone_cloumn) VALUES" .
    "('$name', '$company', '$description', '$email', '$phone')";

上記のクエリで列名を置き換えてください。機能します。

于 2013-02-01T03:29:17.923 に答える
0
$query = "INSERT INTO clientcontact VALUES" .
    "('$name', '$company', '$description', '$email', '$phone')";

(NULL を渡さないでください)

しかし、あなたは本当に使うべきです

$query = "INSERT INTO clientcontact VALUES (name, company, description, email, phone) VALUES ('$name', '$company', '$description', '$email', '$phone')";

代わりは。

于 2013-02-01T03:28:44.837 に答える
0
$query = "INSERT INTO clientcontact SET
   name = '" . $name . "',
   company = '" . $company . "',
   description = '" . $description . "',
   email = '" . $email . "',
   phone = " . $phone . ",
";
于 2013-02-01T03:30:37.780 に答える