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[]в запиті може бути навіть зайвою, якщо планувальник може сам вивести тип.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.