Това, което deceze каза в коментарите, е вярно. Ето начин, по който съм правил това преди.
По принцип вие създавате 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 );
}
Добавих това, преди да осъзная deceze, свързан с въпрос, който даде подобен пример. Ще оставя това тук, защото показва как да го направите с наименувани обвързани променливи, а не с ?s