带有地址斜杠的SQL请求,但在firebug中出现错误


SQL request with addslashes but error in firebug

我有一个sql请求,在firebug我有一个错误。

这是我的sql请求:
$sql = "UPDATE public.".$tableBDD." SET ".$champsDB." WHERE ".$idTable."='".$idUpdate."'";

在那之前,我有这个:

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

它应该可以工作,因为我在字符串中添加了斜杠。但是我的错误是:

警告:pg_query(): Query failed: ERROR: syntax ERROR on«hiver»第一行:……M_ASK’,annee_ref_c_amg = ' 1958 ', nom_culture = '祝福 d ' '养蜂人",dat…

它显示了"d''hiver"上的错误,所以我不明白为什么,因为我不应该再出现引号错误了。

谁能帮我一下?

在PostgreSQL中必须使用pg_escape_string:

pg_escape_string()转义查询数据库的字符串。它以PostgreSQL格式返回一个没有引号的转义字符串。pg_escape_literal()是PostgreSQL转义SQL参数的首选方法。addslashes()不能在PostgreSQL中使用。如果列的类型是bytea,则必须使用pg_escape_bytea()。Pg_escape_identifier()必须用于转义标识符(例如表名,字段名)

见:http://php.net/manual/en/function.pg-escape-string.php

相关文章: