在PHP中向MySQL添加自动增量字段
我不断地发现这个错误: 插入失败:插入到clientcontact值('Don Jones'、'Walmart'、'需要帮助'、'don@icsbranch.net', '772-991-0122') 列计数与第1行的值计数不匹配 我试图从get_post函数传递一个空字段,这是一个自动递增的ID字段。只是想知道我需要更改什么,以便用户可以填写表单,并将信息输入数据库,同时自动填充inquiryID在PHP中向MySQL添加自动增量字段,php,mysql,Php,Mysql,我不断地发现这个错误: 插入失败:插入到clientcontact值('Don Jones'、'Walmart'、'需要帮助'、'don@icsbranch.net', '772-991-0122') 列计数与第1行的值计数不匹配 我试图从get_post函数传递一个空字段,这是一个自动递增的ID字段。只是想知道我需要更改什么,以便用户可以填写表单,并将信息输入数据库,同时自动填充inquiryID <?php require_once 'login.php'; $db_server
<?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]);
}
?>
(您没有传递空值)
但你真的应该使用
$query = "INSERT INTO clientcontact (name_column, company_column, desc_column, email_column, phone_cloumn) VALUES" .
"('$name', '$company', '$description', '$email', '$phone')";
请改为。请执行以下操作:
交叉检查是否存在属性为Auto Increment的列og主键
对于写入的插入查询,请在VALUE关键字之前添加列名
例如:
在TABLENAME(第1列、第2列、第3列)中插入值(value1、value2、value3)
只需忽略列和值集中的自动增量字段。因此,您的查询将是
$query = "INSERT INTO clientcontact SET
name = '" . $name . "',
company = '" . $company . "',
description = '" . $description . "',
email = '" . $email . "',
phone = " . $phone . ",
";
请在上面的查询中替换您的列名,它将起作用。您确实应该使用列列表<代码>插入到clientcontact(姓名、公司、描述、电子邮件、电话、id)值(…您所有的变量…
将更容易确保您没有遗漏列,因为如果没有列列表,您必须以正确的顺序为每一列提供值。如果id为自动增量,您不应该插入空值。至少如果这是一把钥匙的话。按照迈克尔·伯克夫斯基的建议去做。并且不要插入id(没有名称,没有值)。
$query = "INSERT INTO clientcontact (name_column, company_column, desc_column, email_column, phone_cloumn) VALUES" .
"('$name', '$company', '$description', '$email', '$phone')";
$query = "INSERT INTO clientcontact SET
name = '" . $name . "',
company = '" . $company . "',
description = '" . $description . "',
email = '" . $email . "',
phone = " . $phone . ",
";