Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中向MySQL添加自动增量字段_Php_Mysql - Fatal编程技术网

在PHP中向MySQL添加自动增量字段

在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

我不断地发现这个错误:

插入失败:插入到clientcontact值('Don Jones'、'Walmart'、'需要帮助'、'don@icsbranch.net', '772-991-0122') 列计数与第1行的值计数不匹配

我试图从get_post函数传递一个空字段,这是一个自动递增的ID字段。只是想知道我需要更改什么,以便用户可以填写表单,并将信息输入数据库,同时自动填充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]);
}
?>

(您没有传递空值)

但你真的应该使用

$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 . ",
    ";