-5

我不断收到此错误:

INSERT 失败:INSERT INTO clientcontact VALUES('Don Jones'、'Walmart'、'need help'、'don@icsbranch.net'、'772-991-0122')列计数与第 1 行的值计数不匹配

我正在尝试从 get_post 函数传递一个 NULL 字段,这是一个自动增量 ID 字段。只是想知道我需要更改什么,以便用户可以填写表格并将信息输入到数据库中,并自动填充查询 ID。

<?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 的主键列。
  2. 对于写入的插入查询,请在 VALUE 关键字之前添加列名,例如:

    插入表名 (COLUMN1, COLUMN2, COLUMN3) 值 (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 回答