Pertanyaan PDO dengan Klausa "WHERE... IN"
Apabila menggunakan klausa "WHERE... IN" dalam pertanyaan PDO, pembangun sering menghadapi masalah yang mengakibatkan hanya pemadaman item pertama daripada senarai. Ini timbul kerana ketidakserasian nilai pencampuran (nombor) dengan logik aliran kawalan (koma) dalam pernyataan yang disediakan. Untuk menyelesaikan masalah ini, setiap nilai dalam senarai memerlukan pemegang tempatnya sendiri.
Penyelesaian:
$idlist = array('260','201','221','216','217','169','210','212','213');
$questionmarks = str_repeat("?,", count($idlist)-1) . "?";
$stmt = $dbh->prepare("DELETE FROM `foo` WHERE `id` IN ($questionmarks)");
foreach ($idlist as $id) { $stmt->bindParam($i, $id); $i++; }
Setelah penyataan disediakan dan parameter terikat, melaksanakan pertanyaan akan menyebabkan pemadaman berjaya semua item yang dinyatakan dalam tatasusunan $idlist.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Berbilang Item dengan `WHERE... IN` dalam Penyata Disediakan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!