2

我需要在参数化查询中传递一个字符串数组。我尝试了以下方法,但它根本不起作用。

$params = array( array('bob','andrew','larry') );
pg_query_params($conn, 'SELECT * FROM table1 WHERE field = ANY($1)', $params)

我已经看到将数组转换为字符串然后使用 string_to_array 将输入转换为数据库端的数组的解决方案,但是由于这些字符串是从用户输入的,即使我使用了分隔符而不是逗号。如果可能的话,我宁愿为此使用更清洁的解决方案。

有没有办法让这个查询参数化并将一个数组传递给它,而无需将数据转换为字符串?

顺便说一句,我使用的是 PostgreSQL 8.3

4

1 回答 1

1

pgsql.so链接到libpq的没有此功能。

在内部,无论如何它都需要将数组序列化为字符串。

libpqtypes内置了此功能,但我现在知道任何PHP使用它的库。

于 2012-05-31T18:57:31.277 回答