Pendekatan Mana Yang Lebih Baik untuk Memasukkan Berbilang Baris dalam PHP PDO MySQL?

Susan Sarandon
Lepaskan: 2024-11-13 11:16:02
asal
940 orang telah melayarinya

Which Approach is Better for Inserting Multiple Rows in PHP PDO MySQL?

Memasukkan Berbilang Baris dalam PHP PDO MySQL: Perbandingan Kod dan Pengoptimuman

Apabila berurusan dengan keperluan untuk memasukkan berbilang baris ke dalam jadual MySQL menggunakan PHP PDO, pembangun mungkin menghadapi dua pendekatan utama.

Pendekatan 1:

$stmt = $db->prepare($sql);

foreach($rows as $row){
  $stmt->execute($row);
}
Salin selepas log masuk

Pendekatan 2:

$sql = "insert into `table_name` (col1, col2, col3) values ";
$sql .= //not sure the best way to concatenate all the values, use implode?
$db->prepare($sql)->execute();
Salin selepas log masuk

Prestasi dan keselamatan kod:

Kedua-duanya pendekatan adalah berdaya maju, tetapi ia berbeza dari segi kelajuan pelaksanaan dan keselamatan.

Pendekatan 1:

  • Kebaikan: Mudah dan mudah dilaksanakan.
  • Keburukan : Boleh menjadi perlahan untuk set data yang besar kerana pelaksanaan berasingan untuk setiap set data baris.

Pendekatan 2:

  • Kebaikan: Lebih pantas daripada Pendekatan 1 untuk set data yang besar kerana ia melakukan sisipan kelompok .
  • Keburukan: Memerlukan berhati-hati penyatuan nilai, meningkatkan risiko serangan suntikan SQL (gunakan pertanyaan berparameter untuk mencegah).

Memilih pendekatan terbaik:

Pendekatan optimum bergantung pada saiz set data yang dimasukkan. Untuk set data kecil, mana-mana kaedah adalah sesuai. Untuk set data yang besar di mana kelajuan adalah penting, Pendekatan 2 dengan pertanyaan berparameter disyorkan.

Pengoptimuman Tambahan:

Sisipan kelompok dalam Pendekatan 2 boleh dioptimumkan lagi dengan menggabungkan pemegang tempat sebelum melaksanakan pertanyaan:

$sqlArray = array();
foreach($rows as $row){
    $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')';
}
$sql .= implode(',', $sqlArray);
Salin selepas log masuk

Ini dengan ketara mengurangkan bilangan ruang letak yang perlu diikat sebelum pelaksanaan, meningkatkan prestasi.

Atas ialah kandungan terperinci Pendekatan Mana Yang Lebih Baik untuk Memasukkan Berbilang Baris dalam PHP PDO MySQL?. 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