Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Menggunakan Tatasusunan dengan Penyata Disediakan MySQLi dalam Klausa `IN()`?
Cara Menggabungkan Array ke dalam Penyata Disediakan MySQLi untuk Pertanyaan 'IN()'
Apabila melaksanakan pertanyaan MySQL yang melibatkan penapisan rekod berdasarkan nilai dalam tatasusunan menggunakan sintaks WHERE ... IN(...), adalah disyorkan untuk menggunakan pernyataan yang disediakan untuk meningkatkan keselamatan dan prestasi. Walau bagaimanapun, menggunakan pernyataan yang disediakan seperti yang ditunjukkan dalam soalan memerlukan pengisihan manual keputusan.
Untuk menangani ini, penyelesaian yang lebih baik ialah menggunakan fungsi IN() terbina dalam MySQL dalam pernyataan yang disediakan. Ini membolehkan kami untuk memasukkan tatasusunan ID terus ke dalam pertanyaan.
$ids = array(1,5,18,25); // Construct a comma-separated string of placeholders $clause = implode(',', array_fill(0, count($ids), '?')); // Prepare the statement with the IN() clause $stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id` IN (' . $clause . ') ORDER BY `name`;'); // Bind the array of IDs to the placeholders call_user_func_array(array($stmt, 'bind_param'), $ids); $stmt->execute(); // Iterate over the results
Dengan menggunakan pendekatan ini, fungsi bind_param dipanggil sekali dengan keseluruhan tatasusunan ID, dan MySQL secara automatik mengendalikan penapisan dan susunan keputusannya. Ini memberikan penyelesaian yang lebih cekap dan mantap berbanding dengan pengisihan manual.
Atas ialah kandungan terperinci Bagaimana Menggunakan Tatasusunan dengan Penyata Disediakan MySQLi dalam Klausa `IN()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!