PostgreSQL SIAPKAN kueri dengan parameter IN ()


10

Saya mencoba menyiapkan kueri dari PHP seperti:

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

dan kemudian jalankan dengan:

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

Masalahnya adalah bahwa saya tidak bisa melewati serangkaian nilai yang dibangun karena mempersiapkan mengharapkan sejumlah parameter. Apakah ada cara untuk membuat parameter menjadi dinamis?

Jawaban:


15

Gunakan array untuk mewakili serangkaian nilai:

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

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

Para pemain int[]dalam kueri bahkan mungkin berlebihan jika perencana mampu menyimpulkan jenis dengan sendirinya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.