2011-06-30 42 views
-3

有人可以幫我弄清楚爲什麼這段代碼不工作。mysql_query不起作用

我已連接到數據庫。 這段代碼在php標籤內。

$result=mysql_query("INSERT INTO attendeeser (firstName, lastName, shirtSize, title, organization, emailAddress, q1, q2, q3, refId) 
      VALUES ('$_POST[firstName]', '$_POST[lastName]', '$_POST[shirtSize]', '$_POST[title]', '$_POST[organization]', '$_POST[emailAddress]', '$_POST[q1]', '$_POST[q2]', '$_POST[q3]', 'NULL')"); 


我想通了。我沒有q3作爲表中的一個字段。

+5

請定義「不工作」。 –

+1

喬治康明斯說什麼。另外:你的代碼易受[SQL注入](http://php.net/manual/en/security.database.sql-injection.php) –

+0

你檢查過生成的查詢字符串還是mysql錯誤信息? '空值' ? –

回答

3

執行此

if(!mysql_query("INSERT INTO attendeeser (firstName, lastName, shirtSize, title, organization, emailAddress, q1, q2, q3, refId) 
      VALUES ('$_POST[firstName]', '$_POST[lastName]', '$_POST[shirtSize]', '$_POST[title]', '$_POST[organization]', '$_POST[emailAddress]', '$_POST[q1]', '$_POST[q2]', '$_POST[q3]', 'NULL')")){ 
echo mysql_error(); 
} 

,將顯示由MySQL生成的錯誤。

+0

沒有q3作爲表中的字段。捂臉。 – swl1020

+0

@ user821843:如果此答案可幫助您解決問題,則可以通過點擊旁邊的複選框來取消選中它並將其標記爲已接受。這將獎勵Pheonix代表您的工作,並將幫助該網站的未來用戶找到解決其自身問題的解決方案。 –

4

是的,有人可能輸入了一個報價或什麼。不要插入這種方式,你會對SQL注入攻擊敞開大門。最少使用PDO或mysql_real_escape_string()

+0

你能否提出一個更好的方法? – swl1020

+1

@ user821843,我已經提出了兩種方法。使用PDO。 http://www.kitebird.com/articles/php-pdo.html – Brad

+1

@user在這裏查看Brad的第一個建議的完整示例:[參考:什麼是使用mysql擴展的完美代碼示例?](http:/ /stackoverflow.com/q/6198104) –