postgresql — использовать массив php в качестве параметра для предложения Postgres IN

Я пытаюсь связать массив PHP в качестве аргумента для stmt SQL. Я использую расширенный PDO auraSQL, поэтому это выглядит так:

$php_array = ['first', 'second', 'third']
$db->fetchColumn("SELECT * FROM my_table WHERE column IN (:php_array), ['php_array' => $php_array])"

Есть способ сделать это? Я не могу узнать как. Я пытался добавить $php_array как строка, разделенная запятыми и заключенная в кавычки, но это не работает.

РЕДАКТИРОВАТЬ: Решение было использовать функцию AuraSql quote вот так:

 $db->fetchColumn("SELECT * FROM my_table WHERE column IN (".$db->quote($php_array).")";

0

Решение

Посмотрите на документацию Aura.Sql для quote(), Вот: https://github.com/auraphp/Aura.Sql/blob/3.x/docs/getting-started.md#array-quoting

SQL IN предложение требует список значений через запятую. The Aura.Sql quote() Похоже, метод генерирует это для вас.

Вы должны рассмотреть возможность использования perform метод.

https://github.com/auraphp/Aura.Sql/blob/3.x/docs/getting-started.md#the-perform-method

0

Другие решения

Других решений пока нет …