0

我正在尝试将 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用逗号分隔并用引号括起来的 as 字符串,但这不起作用。

编辑:解决方案是像这样使用 AuraSql 函数quote

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

1 回答 1

0

在此处查看 Aura.Sql 文档quote()https ://github.com/auraphp/Aura.Sql/blob/3.x/docs/getting-started.md#array-quoting

SQLIN子句需要一个以逗号分隔的值列表。Aura.Sqlquote()方法似乎会为您生成它。

你应该考虑使用perform方法。

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

于 2017-12-08T15:19:28.610 回答