Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengikat Array Rentetan dengan Benar kepada Pernyataan yang Disediakan MySQLi?
Mengikat Tatasusunan Rentetan dengan Penyata Disediakan mysqi
Apabila bekerja dengan MySQL, selalunya perlu untuk mengikat tatasusunan nilai kepada klausa WHERE IN menggunakan pernyataan yang disediakan. Walaupun tugas ini kelihatan mudah, terdapat beberapa kemungkinan perangkap yang boleh membawa kepada ralat.
Dalam artikel ini, kami akan meneroka pendekatan yang betul untuk mengikat tatasusunan rentetan menggunakan pernyataan yang disediakan mysqli. Kami juga akan memberikan penjelasan terperinci tentang langkah-langkah yang terlibat dan membincangkan penyelesaian yang berpotensi.
Apa Yang Berlaku Salah?
Sampel kod yang diberikan dalam soalan secara salah cuba untuk mengikat tatasusunan bandar kepada pernyataan yang disediakan menggunakan bind_param. Walau bagaimanapun, bind_param mengharapkan nilai skalar (cth., rentetan, integer, dll.) sebagai hujahnya. Percubaan untuk mengikat tatasusunan secara langsung akan mengakibatkan ralat.
Pendekatan yang Betul
Untuk berjaya mengikat tatasusunan rentetan pada pernyataan yang disediakan, kita boleh menggunakan yang berikut langkah:
Contoh Kod
Berikut ialah contoh yang betul kod:
$mysqli = new mysqli("localhost", "root", "root", "db"); if(!$mysqli || $mysqli->connect_errno) { return; } $cities = explode(",", $_GET['cities']); $in = str_repeat('?,', count($cities) - 1) . '?'; $query_str = "SELECT name FROM table WHERE city IN ($in)"; $query_prepared = $mysqli->stmt_init(); if($query_prepared && $query_prepared->prepare($query_str)) { $types = str_repeat('s', count($cities)); $query_prepared->bind_param($types, ...$cities); $query_prepared->execute(); }
Dalam contoh ini, kami mula-mula mencipta rentetan ruang letak menggunakan str_repeat. Kami kemudian memasukkan rentetan ruang letak ini ke dalam pertanyaan dan menyediakan pernyataan. Perhatikan cara kami mengikat elemen individu tatasusunan bandar menggunakan ...$cities dan nyatakan jenis data menggunakan str_repeat('s', count($cities)).
Dengan mengikuti langkah ini, kita boleh berjaya ikat tatasusunan rentetan pada pernyataan yang disediakan mysqli dan laksanakan pertanyaan seperti yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengikat Array Rentetan dengan Benar kepada Pernyataan yang Disediakan MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!