Query PostgreSQL PREPARE con parametri IN ()


10

Sto cercando di preparare una query da PHP come:

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

e quindi eseguirlo con:

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

Il problema è che non riesco a passare una serie di valori creati in quanto prevede un numero fisso di parametri. C'è un modo per rendere dinamici i parametri?

Risposte:


15

Utilizzare un array per rappresentare la serie di valori:

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

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

Il cast su int[]nella query potrebbe anche essere superfluo se il planner è in grado di inferire il tipo da solo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.