基本上,您可以IN
通过循环数组值并添加绑定名称来创建sql字符串的一部分。
$allow = array( 'red', 'blue' );
$sql = sprintf(
"Select * from colors where type in ( %s )",
implode(
',',
array_map(
function($v) {
static $x=0;
return ':allow_'.$x++;
},
$allow
)
)
);
这导致 Select * from colors where type in ( :allow_0,:allow_1 )
然后只需循环$allow
数组并使用bindValue绑定每个变量。
foreach( $allow as $k => $v ){
$stmnt->bindValue( 'allow_'.$k, $v );
}
我在意识到与一个给出类似示例的问题相关联的降序之前添加了此内容。我将其留在这里是因为它显示了如何使用命名的绑定变量而不是?s来完成此操作。