PostgreQuery PREPARE truy vấn với các tham số IN ()


10

Tôi đang cố gắng chuẩn bị một truy vấn từ PHP như:

pg_prepare($con, "prep", "select * from test where tid in ($1)");

và sau đó thực hiện nó với:

$strpar = "3,4,6,8,10";
pg_execute($con, "prep", array($strpars));

Vấn đề là tôi không thể vượt qua một loạt các giá trị được xây dựng vì chuẩn bị mong đợi một số lượng tham số cố định. Có cách nào để làm cho các tham số động?

Câu trả lời:


15

Sử dụng một mảng để biểu diễn chuỗi các giá trị:

pg_prepare($con, "prep", "select * from test where tid=ANY($1::int[])");

$strpar = "{3,4,6,8,10}";
pg_execute($con, "prep", array($strpars));

Việc truyền int[]vào truy vấn thậm chí có thể là thừa nếu trình hoạch định có thể tự suy ra kiểu đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.