Bagaimana untuk Menyisipkan Berbilang Baris dengan Satu Penyata Disediakan Tunggal dalam MySQLi?

DDD
Lepaskan: 2024-10-20 16:38:02
asal
258 orang telah melayarinya

How to Insert Multiple Rows with a Single Prepared Statement in MySQLi?

Memasukkan Berbilang Baris dengan Satu Penyata Disediakan Tunggal dalam MySQLi

Masalah:

Masukkan berbilang baris ke dalam pangkalan data menggunakan pernyataan yang disediakan, mengelakkan keperluan untuk pertanyaan berasingan untuk setiap baris.

Penyelesaian:

Walaupun kenyataan yang disediakan biasanya mengendalikan operasi baris tunggal, ia mungkin untuk memasukkan berbilang baris menggunakan sintaks dan metodologi pertanyaan khas.

Pendekatan:

  1. Buat rentetan nilai: Gunakan array_merge() dan implode() untuk membina rentetan nilai dalam format "(, , ), ...". Ini mewakili baris yang hendak disisipkan.
  2. Sediakan pernyataan: Sediakan pertanyaan dengan rentetan nilai sebagai klausa VALUES, sertakan dalam kurungan.
  3. Buat parameter pengikat: Tentukan bilangan baris dan sediakan parameter pengikat dengan pengulangan rentetan "i" (untuk nilai integer) didarab dengan bilangan baris didarab dengan bilangan lajur setiap baris.
  4. Ikat nilai: Gunakan ...array_merge( ...$rows) untuk membongkar nilai daripada tatasusunan berbilang dimensi dan mengikatnya pada parameter.
  5. Laksanakan pernyataan: Laksanakan pernyataan yang disediakan untuk memasukkan baris yang ditentukan dengan satu pertanyaan.

Contoh Kod:

<code class="php">$rows = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
$rowCount = count($rows);
$values = "(&" . implode('),(', array_fill(0, $rowCount, '?,?,?')) . "&)";

$stmt = $conn->prepare("INSERT INTO test (col1, col2, col3) VALUES $values");
$stmt->bind_param(str_repeat('i', $rowCount * 3), ...array_merge(...$rows));
$stmt->execute();</code>
Salin selepas log masuk

Pendekatan Alternatif:

Ia juga boleh diterima untuk menggunakan pernyataan yang disediakan dengan satu baris pemegang tempat dan laksanakannya dalam gelung untuk setiap baris, yang lebih mudah tetapi berkemungkinan kurang cekap.

Atas ialah kandungan terperinci Bagaimana untuk Menyisipkan Berbilang Baris dengan Satu Penyata Disediakan Tunggal dalam MySQLi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!