SQL-запрос с добавлением косой черты, но ошибка в firebug

У меня есть запрос SQL и в Firebug у меня есть ошибка.

Это мой sql запрос:

$sql = "UPDATE public.".$tableBDD." SET ".$champsDB." WHERE ".$idTable."='".$idUpdate."'";

И до этого у меня есть это:

$champsDB.= $champs->nom.'=\''.addslashes($ligne[$i]).'\',';

Так что это должно работать, потому что я добавляю косые черты в мою строку. Но моя ошибка:

Предупреждение: pg_query (): Запрос не выполнен: ОШИБКА: ошибка синтаксиса «hiver»
ЛИНИЯ 1: … M_ASK ‘, annee_ref_c_amg =’ 1958 ‘, nom_culture =’ Blé d \ ‘пасечник»Дат …

И это показывает ошибку на «d ‘\ hiver», поэтому я не понимаю, почему, потому что у меня больше не должно быть ошибки с кавычками.

Может кто-то помочь мне, пожалуйста ?

0

Решение

В PostgreSQL вы должны использовать pg_escape_string:

pg_escape_string () экранирует строку для запроса к базе данных. Возвращает экранированную строку в формате PostgreSQL без кавычек. pg_escape_literal () является более предпочтительным способом экранирования параметров SQL для PostgreSQL. addlashes () не должен использоваться с PostgreSQL. Если тип столбца — bytea, вместо него следует использовать pg_escape_bytea (). pg_escape_identifier () должен использоваться для экранирования идентификаторов (например, имен таблиц, имен полей)

Увидеть: http://php.net/manual/en/function.pg-escape-string.php

0

Другие решения

Других решений пока нет …