【发布时间】:2018-05-22 20:20:50
【问题描述】:
我正在尝试将 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).")";
【问题讨论】:
-
我对这里的用法有点困惑。 $db 是 ExtendedPdo 的对象吗?在那种情况下,我相信您需要查询并获取准备好的语句,然后调用
fetchColumn?fetchColumn本身没有包装器,因此预计会失败。见github.com/auraphp/Aura.Sql/blob/3.x/src/… 和github.com/auraphp/Aura.Sql/blob/3.x/src/ExtendedPdo.php
标签: php postgresql pdo auraphp