Zapytanie PostgreSQL PREPARE z parametrami IN ()


10

Próbuję przygotować zapytanie z PHP, takie jak:

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

a następnie uruchom go za pomocą:

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

Problem polega na tym, że nie mogę przekazać szeregu wartości zbudowanych, ponieważ preparat oczekuje stałej liczby parametrów. Czy jest jakiś sposób, aby parametry były dynamiczne?

Odpowiedzi:


15

Użyj tablicy do reprezentowania szeregu wartości:

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

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

Rzutowanie int[]w kwerendzie może być nawet zbędne, jeśli planista jest w stanie samodzielnie określić typ.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.