我如何传递数组到:PDO通数组存储过程
$query = 'CALL myStoredProcedure(:array)'
使用它在存储过程的IN子句?
顺便说一句:它不重复。将数组传递到存储过程不等于将数组直接传递到SELECT查询。所以重复标记是错误的。我可以将数组作为(?,?,?,?,?)的集合传递,但是如何在IN子句中调用未知的参数计数?
$params = array(1, 21, 63, 171);
$place_holders = implode(',', array_fill(0, count($params), '?'));
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);