Cara Menggunakan Tatasusunan Integer dalam Pertanyaan MySQL (PHP)
Masalah:
Anda memerlukan cara untuk menggunakan pelbagai ID item kandungan rawak dalam pertanyaan MySQL, dengan setiap ID diletakkan dalam klausa WHERE dalam susunan penampilannya dalam tatasusunan. Pertanyaan ini hendaklah menjadi KEMASKINI untuk setiap ID individu dalam tatasusunan.
Penyelesaian:
Menggunakan pernyataan yang disediakan untuk operasi SQL dalam PHP adalah sangat disyorkan. Penyata yang disediakan menawarkan peningkatan keselamatan dengan menghalang serangan suntikan SQL dan meningkatkan kecekapan melalui penyusunan kenyataan pangkalan data. Dua pendekatan yang boleh anda pertimbangkan ialah:
Pendekatan Berulang:
$ids = array(2, 4, 6, 8); $sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id = ?"; $stmt = $mysqli->prepare($sql); for ($i = 0; $i < count($ids); $i++) { $stmt->bind_param("i", $ids[$i]); $stmt->execute(); echo "Updated record ID: $id\n"; } $stmt->close();
Pendekatan Pelaksanaan Tunggal:
$ids = array(2, 4, 6, 8); $params = implode(",", array_fill(0, count($ids), "?")); $sql = "UPDATE MyTable SET LastUpdated = GETDATE() WHERE id IN ($params)"; $stmt = $mysqli->prepare($sql); $types = str_repeat("i", count($ids)); // "iiii" $args = array_merge(array($types), $ids); // ["iiii", 2, 4, 6, 8] call_user_func_array(array($stmt, 'bind_param'), ref($args)); // $stmt->bind_param("iiii", 2, 4, 6, 8) $stmt->execute(); $stmt->close(); echo "Updated record IDs: " . implode("," $ids) ."\n";
Untuk medan tambahan yang perlu anda tambahkan, tambahkan lebih banyak ruang letak parameter pada SQL kenyataan.
Pendekatan Mana Yang Perlu Dipilih:
Kelebihan Penyata Disediakan:
Atas ialah kandungan terperinci Bagaimana Mengemas kini Berbilang Rekod MySQL Dengan Cekap Menggunakan Tatasusunan Integer dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!