Rumah >pembangunan bahagian belakang >tutorial php >Bolehkah Penyata Disediakan PDO dengan Cekap Memasukkan Berbilang Baris dalam Satu Pertanyaan?

Bolehkah Penyata Disediakan PDO dengan Cekap Memasukkan Berbilang Baris dalam Satu Pertanyaan?

Barbara Streisand
Barbara Streisandasal
2024-12-30 14:56:10237semak imbas

Can PDO Prepared Statements Efficiently Insert Multiple Rows in a Single Query?

Memasukkan Berbilang Baris dengan Penyata Disediakan PDO

Untuk meningkatkan keselamatan dengan PDO, pembangun mencari kaedah untuk memasukkan berbilang baris dalam satu pertanyaan menggunakan disediakan kenyataan. Artikel ini meneroka kebolehlaksanaan dan pelaksanaan penyelesaian sedemikian.

Memasukkan berbilang baris dalam satu pertanyaan adalah lebih pantas daripada sisipan biasa. Pernyataan yang disediakan menggunakan bahagian tetap yang ditulis secara eksplisit dalam kod, memberikan keselamatan 100%.

Untuk melaksanakan ini, buat bahagian VALUES dengan jujukan ruang letak untuk satu baris. Tentukan bilangan medan dan baris untuk mengulangi urutan ini dengan sewajarnya.

// VALUES part for a single row
$values = str_repeat('?,', count($data[0]) - 1) . '?';

// Construct the entire query
$sql = "INSERT INTO table (columnA, columnB) VALUES " .
    // Repeat the VALUES part for each row
    str_repeat("($values),", count($data) - 1) . "($values)";

$stmt = $db->prepare($sql);
// Execute with all values from $data
$stmt->execute(array_merge(...$data));

Pendekatan ini selamat kerana pertanyaan mengandungi bahagian tetap. Ia serasi dengan MySQLi dan PDO merentas semua versi PHP yang disokong.

Atas ialah kandungan terperinci Bolehkah Penyata Disediakan PDO dengan Cekap Memasukkan Berbilang Baris dalam Satu Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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