2012-04-06 69 views
0

這裏是我的查詢MySQL的插入查詢變量發出

// Put it all into the database 
mysql_query("INSERT INTO 
    orders (
     item_id, 
     order_id, 
     contact_first_name, 
     contact_last_name, 
     contact_email, 
     contact_phone, 
     business_name, 
     business_type, 
     business_website, 
     business_address, 
     business_city, 
     business_state, 
     business_zip, 
     business_phone, 
     promo_code, 
     add_details 
    ) 
    VALUES(
     ". $post_data['item_id'] .", 
     ". $order_hash .", 
     ". $post_data['contact_first_name'] .", 
     ". $post_data['contact_last_name'] .", 
     ". $post_data['contact_email'] .", 
     ". $post_data['contact_phone'] .", 
     ". $post_data['business_name'] .", 
     ". $post_data['business_type'] .", 
     ". $post_data['business_website'] .", 
     ". $post_data['business_address'] .", 
     ". $post_data['business_city'] .", 
     ". $post_data['business_state'] .", 
     ". $post_data['business_zip'] .", 
     ". $post_data['business_phone'] .", 
     ". $post_data['promo_code'] .", 
     ". $post_data['add_details'] ." 
    ) 
") or die(mysql_error()); 

現在如果我填寫的所有表格,以便有沒有空字符串它給了我這個錯誤。哈希是$ order_hash:

未知列在「字段列表」 76a051b750ce9363cec3df9961d2fd6b「

如果我留一些空白,則它給了我:

你有一個錯誤的SQL語法;檢查 對應於你的MySQL服務器版本的手冊正確的語法使用雙引號 接近「1,,,,AL,,,,)」在第27行

我曾嘗試多種變化,單引號等等,似乎無法弄清楚。這應該是一個簡單的插入查詢,就像我之前做的一樣,但我只是用這個運行一個垃圾。感謝您的幫助:)

回答

3

您需要在報價單內寫入字符串。否則mysql會將它們作爲列。例如:

... 
'". $post_data['contact_first_name'] ."', 
'". $post_data['contact_last_name'] ."', 
... 

或多個簡單(使用查詢雙引號時)

... 
'{$post_data['contact_first_name']}', 
'{$post_data['contact_last_name']}', 
... 
+0

THANK YOU!那麼有沒有一個混亂的方式,或者我只是錯過了單引號? – MLM 2012-04-06 05:18:53

+0

你只是錯過了單引號,也確保你在引用之前過濾數據,以避免SQL注入 – safarov 2012-04-06 05:20:19

+0

是的,我已經過濾上面,我只是有一個乾淨的數組插入之前。再次感謝 ;) – MLM 2012-04-06 05:21:14