使用 php 数组作为 Postgres IN 子句的参数
Use php array as parameter for Postgres IN clause
我正在尝试绑定一个 PHP 数组作为 SQL stmt 的参数。我正在使用 auraSQL 扩展 PDO,所以它看起来像这样:
$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).")";
在此处查看 quote()
的 Aura.Sql 文档:https://github.com/auraphp/Aura.Sql/blob/3.x/docs/getting-started.md#array-quoting
SQL IN
子句需要以逗号分隔的值列表。 Aura.Sql quote()
方法似乎可以为您生成。
您应该考虑使用 perform
方法。
https://github.com/auraphp/Aura.Sql/blob/3.x/docs/getting-started.md#the-perform-method
我正在尝试绑定一个 PHP 数组作为 SQL stmt 的参数。我正在使用 auraSQL 扩展 PDO,所以它看起来像这样:
$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).")";
在此处查看 quote()
的 Aura.Sql 文档:https://github.com/auraphp/Aura.Sql/blob/3.x/docs/getting-started.md#array-quoting
SQL IN
子句需要以逗号分隔的值列表。 Aura.Sql quote()
方法似乎可以为您生成。
您应该考虑使用 perform
方法。
https://github.com/auraphp/Aura.Sql/blob/3.x/docs/getting-started.md#the-perform-method