PostgreSQL เตรียมการสืบค้นด้วยพารามิเตอร์ IN ()


10

ฉันพยายามจัดทำแบบสอบถามจาก PHP เช่น:

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

จากนั้นเรียกใช้งานด้วย:

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

ปัญหาคือฉันไม่สามารถผ่านชุดของค่าที่สร้างขึ้นตามที่เตรียมไว้คาดว่าจะมีพารามิเตอร์จำนวนคงที่ มีวิธีใดที่จะทำให้พารามิเตอร์เป็นแบบไดนามิกหรือไม่?

คำตอบ:


15

ใช้อาร์เรย์เพื่อแสดงชุดของค่า:

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

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

การโยนไปยังint[]ในแบบสอบถามอาจไม่จำเป็นหากผู้วางแผนสามารถอนุมานชนิดด้วยตัวเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.