2012-04-06 2 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

СПАСИБО! Итак, есть ли менее грязный способ, или я просто пропускаю одинарные кавычки? – MLM

+0

вам просто не хватает одинарных кавычек, также убедитесь, что вы фильтруете данные перед записью в цитату, чтобы избежать SQL Injection – safarov

+0

yep, я отфильтровал его выше, и перед тем, как вставить, у меня есть чистый массив. Еще раз спасибо ;) – MLM

Смежные вопросы