Bagaimana untuk Melaksanakan Penyisipan Berbilang Baris dengan Berkesan dalam MySQLi Menggunakan Pernyataan yang Disediakan?

Susan Sarandon
Lepaskan: 2024-10-20 16:35:29
asal
532 orang telah melayarinya

How to Perform Multiple Row Insertion Effectively in MySQLi Using Prepared Statements?

Sisipan Berbilang Baris dalam MySQLi Menggunakan Penyata Disediakan

Apabila berurusan dengan sisipan data pukal, membina satu pertanyaan dengan berbilang baris boleh menjadi lebih cekap daripada melaksanakan berbilang pertanyaan berasingan. Walau bagaimanapun, menggunakan pernyataan yang disediakan untuk sisipan berbilang baris memerlukan pendekatan yang sedikit berbeza.

Mencipta Pernyataan dengan Berbilang Baris

Untuk memasukkan berbilang baris menggunakan pernyataan yang disediakan, anda boleh memanfaatkan kaedah penggabungan rentetan:

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

$stmt = $mysqli->prepare("INSERT INTO table (col1, col2, col3) VALUES $values");</code>
Salin selepas log masuk

Di sini, pembolehubah $values ​​mencipta bahagian pertanyaan yang mengandungi nilai baris dalam format (?, ?, ?), (?, ?, ?), ....

Mengikat dan Melaksanakan

Setelah penyataan disediakan, nilai boleh diikat dan penyataan boleh dilaksanakan. Walau bagaimanapun, ambil perhatian bahawa bind_param menjangkakan semua parameter akan diluluskan sebagai tatasusunan tunggal, jadi berbilang baris mesti diratakan dan dibongkar menggunakan kaedah array_merge(...$rows):

<code class="php">$stmt->bind_param(str_repeat('i', $rowCount * 3), ...array_merge(...$rows));
$stmt->execute();</code>
Salin selepas log masuk

Pendekatan ini membolehkan anda untuk melakukan pemasukan berbilang baris dalam satu perjalanan ke pangkalan data, meningkatkan kecekapan untuk operasi pemasukan data pukal.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penyisipan Berbilang Baris dengan Berkesan dalam MySQLi Menggunakan Pernyataan yang Disediakan?. 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
Artikel terbaru oleh pengarang
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!