我使用test.php?id=2,4,5,6,7
使用以下php:
$id_array = $_GET['id'];
$id_array = explode(',', $id_array);
pg_prepare($conn, 'test', 'select 1 from my_test_table where id = ANY ($1)');
pg_execute($conn, 'test', array($id_array);
我不断得到像
这样的东西malformed array literal: "["73","123","412"]"
和类似的错误。我无法弄清楚将数组传递给我的pg_execute的正确方法,但我需要确保在插入之前所有id都在db中。
具体来说,我试图在postgres db中插入一个int数组。
任何人都可以帮忙吗?
我也试过
json_encode(explode(',', $id_array));
答案 0 :(得分:1)
这应该这样做:
pg_prepare($conn, 'test',
" SELECT 1
FROM my_test_table
WHERE id = ANY (string_to_array($1, ',')) ");
pg_execute($conn, 'test', array($_GET['id']));
我们使用postgresql string_to_array函数,如最常见的答案https://stackoverflow.com/a/36930781/5546267