Menggunakan Tatasusunan ID dalam Pertanyaan MySQL dengan PHP
Apabila berurusan dengan tatasusunan ID integer dalam PHP, ia menjadi perlu untuk menggabungkannya ke dalam pertanyaan MySQL. Artikel ini menerangkan cara untuk mencapai matlamat ini dengan berkesan.
Pendekatan Penyata Disediakan
Satu pendekatan yang disyorkan ialah menggunakan kenyataan yang disediakan untuk meningkatkan keselamatan dan kecekapan. Berikut ialah contoh:
$ids = array(2, 4, 6, 8); // Prepare the SQL statement with a single parameter placeholder $sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id = ?"; $stmt = $mysqli->prepare($sql); // Bind a different value to the placeholder for each execution for ($i = 0; $i < count($ids); $i++) { $stmt->bind_param("i", $ids[$i]); $stmt->execute(); echo "Updated record ID: $id\n"; }
Pernyataan Dinamik dengan Berbilang Pemegang Tempat
Sebagai alternatif, pernyataan SQL dinamik dengan berbilang ruang letak boleh dibina:
$ids = array(2, 4, 6, 8); // Prepare the SQL statement with multiple parameter placeholders $params = implode(",", array_fill(0, count($ids), "?")); $sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id IN ($params)"; $stmt = $mysqli->prepare($sql); // Bind all parameter values at once using dynamic function call $types = str_repeat("i", count($ids)); $args = array_merge(array($types), $ids); call_user_func_array(array($stmt, 'bind_param'), ref($args)); // Execute the query for all input values in one step $stmt->execute();
Pendekatan Yang Mana Pilih?
Faedah Penyata Disediakan
Di luar keselamatan yang dipertingkatkan terhadap suntikan SQL, kenyataan yang disediakan menawarkan beberapa kelebihan:
Atas ialah kandungan terperinci Bagaimana Menggunakan Tatasusunan ID PHP dengan Cekap dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!