2013-02-01 76 views
-4

我不斷收到此錯誤:添加一個自動遞增領域到MySQL在PHP

INSERT失敗:INSERT INTO clientcontact VALUES( '唐·瓊斯', '沃爾瑪', '需要幫助',「唐@ icsbranch。 '772-991-0122') 列數不匹配第1行的值計數

我想從get_post函數,這是一個自動增量ID字段傳遞一個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]); 
} 
?> 
+3

顯示您的表格架構。 – djdy

+6

你真的應該使用列列表。 'INSERT INTO clientcontact(name,company,description,email,phone,id)VALUES(...你所有的變量...)'確保你沒有省略一列因爲沒有列表,你必須按照正確的順序爲每一列提供一個值。 –

+1

如果id是auto_increment,你不應該插入值NULL。至少如果它的關鍵。 – Class

回答

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')"; 

代替。

2

請執行下列操作:

  1. 交叉檢查,有一列OG財產自動遞增的主鍵。
  2. 書面請爲例如值關鍵字 前添加列名插入查詢:

    INSERT INTO TABLENAME(COLUMN1,COLUMN2,欄3)VALUES(值1,值2,值3)

只需忽略列和值集中的自動增量字段即可。因此,您的查詢將是

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

請在上面的查詢中替換您的列名稱,它將工作。

0
$query = "INSERT INTO clientcontact SET 
    name = '" . $name . "', 
    company = '" . $company . "', 
    description = '" . $description . "', 
    email = '" . $email . "', 
    phone = " . $phone . ", 
";