PDO 綁定 IN 的快速解決方式

有時候需要使用 IN 的條件

但是在 PDO 使用會錯誤

網路上大部分的解決方式都是產生一串很多問號的字串來解決

$in = str_repeat(‘?,’, count($array) – 1) . ‘?’;
$sql = ‘SELECT * FROM table WHERE value IN ($in)’;
$stm = $db->prepare($sql);
$stm->execute($array);

後來看到另一種用 FIND_IN_SET 的方式解決

如果資料量不大的話可以使用

$params[‘:in’] = implode(‘,’,$in);
$sql = ‘SELECT * FROM table WHERE value IN (:in)’;
$stm = $db->prepare($sql);
$stm->execute($params);

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料