在为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抛出错误。谢谢。谢谢你的帮助。