在为postgresql查询转义数组中的字符串时使用什么php函数

在为postgresql查询转义数组中的字符串时使用什么php函数,php,postgresql,Php,Postgresql,我有一个使用数组的查询,如下所示: 从code=ANY的设备中选择*(“{”value1“,”value2“,“…”) 如果value1改为val“ue1查询将失败。我可以在双引号前使用反斜杠来解决这个问题。我试图使用标准的pg_u函数来转义这个字符串,但是pg_uescape_ustring,pg_uescape_uliteral或pg_escape_uidentifier似乎无法正确格式化字符串 是否有特定的函数来转义这些类型的数组 就用我自己写的 对于如何编写查询,是否有更好的建议

我有一个使用数组的查询,如下所示:

从code=ANY的设备中选择*(“{”value1“,”value2“,“…”)

如果
value1
改为
val“ue1
查询将失败。我可以在双引号前使用反斜杠来解决这个问题。我试图使用标准的pg_u函数来转义这个字符串,但是
pg_uescape_ustring
pg_uescape_uliteral
pg_escape_uidentifier
似乎无法正确格式化字符串

  • 是否有特定的函数来转义这些类型的数组 就用我自己写的

  • 对于如何编写查询,是否有更好的建议

理想情况下,我希望为此使用参数化查询,但似乎不可能在pg_query_params()中将数组作为参数传递


非常感谢。

您可以使用此查询的修改版本:

从code=ANY的设备中选择*(数组['value1'、'value2'、'…']::text[]);

转义
值1
valueN
使用
pg\u escape\u字符串
并将它们括在单引号中。

则相反。params-一个参数值数组,用于替换原始准备的查询字符串中的$1、$2等占位符。数组中元素的数量必须与占位符的数量相匹配。但不能分配$a=array(),然后执行pg_query_params($conn,“SELECT*FROM table WHERE id=ANY($1)”,[$a]);php和/或postgres抛出错误。谢谢。谢谢你的帮助。