Mengikat Tatasusunan Rentetan ke Klausa WHERE IN(?)
Mengikat tatasusunan nilai ke klausa WHERE IN(?) ialah tugas MySQL biasa. Apabila menggunakan penyataan yang disediakan mysqli PHP, ia boleh menjadi sukar untuk dicapai jika anda tidak biasa dengan batasan dan nuansa fungsi bind_param().
Masalahnya
Anda mungkin menghadapi masalah apabila cuba mengikat tatasusunan nilai pada klausa IN(?) menggunakan bind_param(), mengakibatkan pelaksanaan yang tidak berjaya.
Penyelesaian
Terdapat pelbagai cara untuk mendekati tugasan ini, bergantung pada versi PHP yang anda gunakan:
PHP 8.2 dan Di atas
PHP 8.1
Versi PHP yang lebih awal
Untuk versi yang lebih lama, pendekatan yang lebih terperinci diperlukan:
Contoh Kod
Berikut ialah contoh menggunakan pendekatan versi PHP terdahulu:
$array = ['Nashville', 'Knoxville']; $in = str_repeat('?,', count($array) - 1) . '?'; $sql = "SELECT name FROM table WHERE city IN ($in)"; $stmt = $mysqli->prepare($sql); // prepare $types = str_repeat('s', count($array)); // types $stmt->bind_param($types, ...$array); // bind array at once $stmt->execute(); $result = $stmt->get_result(); $data = $result->fetch_all(MYSQLI_ASSOC);
Dengan memahami pendekatan ini, anda boleh mengikat tatasusunan rentetan dengan cekap ke klausa WHERE IN(?) menggunakan pernyataan yang disediakan mysqli, memastikan kejayaan pelaksanaan pertanyaan anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengikat Susunan Rentetan dengan Cekap pada Klausa MySQL WHERE IN(?) Menggunakan Penyata Disediakan mysqli PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!