2014-11-21 2 views
0

Привет Я использую php для вставки некоторых данных в базу данных MS Access, которая работает нормально в большинстве случаев, единственный раз, когда она не работает, насколько я могу судить, там, где есть поле, в данном случае его адрес, т.е. St John's Road.Апостроф, вызывающий проблемы со вставкой

Это утверждение запроса Я использую:

$sql = "insert into tempaddress (`id`, `StreetAddress`, `Place`, `PostCode`) values ('".$item["Id"]."', '".$item["StreetAddress"]."', '".$item["Place"]."','$SearchTerm')"; CustomQuery($sql); 

И это ошибка я получаю http://prntscr.com/58jncv

Я довольно уверен, что это может быть только "в пределах строки текста, который как я могу измениться?

+3

http://bobby-tables.com/ – DoctorMick

ответ

0

Апострофы разбивают строки SQL. Поэтому вы должны добавить косые черты перед каждым апострофом в своих строках SQL вручную или использовать встроенную функцию PHPaddslashes().

Пример:

$sql = "INSERT INTO myTable (value) VALUES ('Text that shouldn't break')"; 

$sql = addslashes($sql); // outputs "INSERT INTO myTable (value) VALUES ('Text that shouldn\\'t break')" 

Источник: php.net/manual/en/function.addslashes.php

-1

Вы используете '' цитату с переменной PHP $ SEARCHTERM и использовать обратную косую черту перед именем столбца.

Изменить ваше заявление запрос к этому:

$sql = "insert into tempaddress (\`id\`, \`StreetAddress\`, \`Place\`, \`PostCode`) values ('".$item["Id"]."', '".$item["StreetAddress"]."', '".$item["Place"]."',$SearchTerm)"; CustomQuery($sql); 
+0

Его не поисковый термин, который разбивает его. $ Item ["StreetAddress"]. "' – Simon79

+0

Не нужно избегать столбцов! – DarkBee

0

Спасибо, в конце концов, я пошел с str_replace ("'", "", $ строка);

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