2013-06-08 5 views
0

У меня возникла ошибка при попытке записать в базу данных.Ошибка синтаксиса MySQL в базе данных

Сообщение об ошибке (я тестировал с некоторыми значениями ...):

У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи 'значений (Digger, 45_456, 645_645, 6_6, 456_456, 456_45,' в строке 3

Мой код:

Mysql_query("INSERT INTO 
     ".$balicky_table." 
     values(".$name.",  <-line 3 
     ".$id1."_".$kus1.", 
     ".$id2."_".$kus2.", 
     ".$id3."_".$kus3.", 
     ".$id4."_".$kus4.", 
     ".$id5."_".$kus5.", 
     ".$id6."_".$kus6.", 
     ".$id7."_".$kus7.", 
     ".$id8."_".$kus8.", 
     ".$id9."_".$kus9.", 
     ".$id10."_".$kus10.", 
     ".$id11."_".$kus11.", 
     ".$id12."_".$kus12.", 
     ".$cost.")", $SpojenieWeb) or die(mysql_error()); 

В базе данных у меня есть тип Varchar (100)

+1

Вам нужно обернуть каждое значение в кавычки. Тем не менее, этот код открыт для SQL-инъекции, если какая-либо из этих переменных поступает из внешних источников. –

+0

Для текстовых данных необходимо использовать одинарные кавычки, например, это значения ('.. $ Name. "',' – Winston

+0

. Не могли бы вы использовать то, что он хранил в $ balicky_table, вам не хватает кавычек, но у вас также есть ошибка, прежде чем в столбцы – Fabio

ответ

1

Digger так нужна строка цитата:. values('".$name."',

+0

Не делайте я добавляю цитаты: У вас возникла ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса ('Digger', 45_456, 645_645, 6_6, 456_456, 456_45, 'в строке 3 – Machete

+0

, остальные строки тоже нужны и нужны котировки одинаково ... –

+0

также должна быть ошибка с именем столбцов – Fabio

0

Вам нужно цитата: смотрите здесь:

Mysql_query("INSERT INTO 
     ".$balicky_table." 
     values('".$name."',  
     '".$id1."_".$kus1."', 
     '".$id2."_".$kus2."', 
     '".$id3."_".$kus3."', 
     '".$id4."_".$kus4."', 
     '".$id5."_".$kus5."', 
     '".$id6."_".$kus6."', 
     '".$id7."_".$kus7."', 
     ''".$id8."_".$kus8."', 
     '".$id9."_".$kus9."', 
     '".$id10."_".$kus10."', 
     '".$id11."_".$kus11."', 
     '".$id12."_".$kus12."', 
     '".$cost."')", $SpojenieWeb) or die(mysql_error()); 
0

Необходимо предоставить данные. Это проблема

Установите этот флажок:

"INSERT INTO 
    ".$balicky_table." 
    values('".$name."', 
    '".$id1."_".$kus1."', 
    '".$id2."_".$kus2."', 
    '".$id3."_".$kus3."', 
    '".$id4."_".$kus4."', 
    '".$id5."_".$kus5."', 
    '".$id6."_".$kus6."', 
    '".$id7."_".$kus7."', 
    '".$id8."_".$kus8."', 
    '".$id9."_".$kus9."', 
    '".$id10."_".$kus10."', 
    '".$id11."_".$kus11."', 
    '".$id12."_".$kus12."', 
    '".$cost."')", $SpojenieWeb) 
0

Привет Похоже, что значение здесь являются строками. По мере того как вы соглашаетесь с ними, используя «_». Строку нужно обернуть цитатой. Поскольку вы используете двойную кавычку для своего php, вы можете обернуть, используя одиночную кавычку.

"INSERT INTO 
    ".$balicky_table." 
    values('".$name."', 
    '".$id1."_".$kus1."', 
    ....... 

Для всех них.

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