У меня есть запрос 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», поэтому я не понимаю, почему, потому что у меня больше не должно быть ошибки с кавычками.
Может кто-то помочь мне, пожалуйста ?
В 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
Других решений пока нет …