Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengikat Tatasusunan kepada Klausa IN() dalam Pertanyaan PDO?
Bolehkah Nilai Tatasusunan Diikat pada Keadaan IN() dalam Pertanyaan PDO?
Mengikat tatasusunan nilai kepada IN() keadaan menggunakan PDO adalah mungkin, tetapi ia memerlukan pembinaan ruang letak manual. Begini caranya:
Berikut ialah contoh:
$ids = [1, 2, 3, 7, 8, 9]; $inQuery = str_repeat('?,', count($ids) - 1) . '?'; // ?,?,?,?,?,? $stmt = $db->prepare("SELECT * FROM table WHERE id IN($inQuery)"); $stmt->execute($ids);
Sekiranya pemegang tempat dinamakan:
Berikut ialah contoh:
$ids = [1, 2, 3]; $in = ""; $i = 0; // external counter foreach ($ids as $item) { $key = ":id" . $i++; $in .= ($in ? "," : "") . $key; // :id0,:id1,:id2 $in_params[$key] = $item; // collect values } $sql = "SELECT * FROM table WHERE id IN ($in)"; $stmt = $db->prepare($sql); $stmt->execute(array_merge(["foo" => "foo", "bar" => "bar"], $in_params));
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengikat Tatasusunan kepada Klausa IN() dalam Pertanyaan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!