Rumah > pangkalan data > tutorial mysql > Bagaimana Mengemas kini Berbilang Rekod MySQL Dengan Cekap Menggunakan Tatasusunan Integer dalam PHP?

Bagaimana Mengemas kini Berbilang Rekod MySQL Dengan Cekap Menggunakan Tatasusunan Integer dalam PHP?

Barbara Streisand
Lepaskan: 2024-12-09 10:50:06
asal
1041 orang telah melayarinya

How to Efficiently Update Multiple MySQL Records Using an Integer Array in PHP?

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();
Salin selepas log masuk

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";
Salin selepas log masuk

Untuk medan tambahan yang perlu anda tambahkan, tambahkan lebih banyak ruang letak parameter pada SQL kenyataan.

Pendekatan Mana Yang Perlu Dipilih:

  • Pendekatan Berulang: Sesuai untuk operasi KEMASKINI dan INSERT di mana panggilan pangkalan data dibuat untuk setiap rekod.
  • Perlaksanaan Tunggal Pendekatan: Cekap untuk pertanyaan PILIH dan PADAM, atau untuk operasi KEMASKINI yang semua rekod diubah suai sama.

Kelebihan Penyata Disediakan:

  • Keselamatan yang dipertingkatkan terhadap serangan suntikan SQL.
  • Peningkatan kecekapan disebabkan penyusunan pernyataan dan pemindahan data yang dikurangkan.
  • Pencegahan penghantaran rentetan SQL penuh berulang ke pangkalan data.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan