我需要在参数化查询中传递一个字符串数组。我尝试了以下方法,但它根本不起作用。
$params = array( array('bob','andrew','larry') );
pg_query_params($conn, 'SELECT * FROM table1 WHERE field = ANY($1)', $params)
我见过将数组转换为字符串然后使用 string_to_array 将输入转换为数据库端的数组的解决方案,但由于这些字符串是来自用户的输入,即使我使用了逗号以外的分隔符,这也可能会以糟糕的方式结束。如果可能的话,我宁愿为此使用更干净的解决方案。
有没有办法保持此查询参数化并将数组传递给它,而无需将数据转换为字符串?
顺便说一下,我正在使用PostgreSQL 8.3
pgsql.so
链接到没有此功能的libpq
。
在内部,无论如何,它都需要将数组序列化为字符串。
libpqtypes
内置了此功能,但我现在知道任何PHP
库都在使用它。