Rumah >pangkalan data >tutorial mysql >Pendekatan Mana yang Lebih Baik untuk Memasukkan Berbilang Baris dalam PHP PDO MySQL?

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

Susan Sarandon
Susan Sarandonasal
2024-11-13 11:16:021003semak imbas

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);
}

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();

Prestasi dan keselamatan kod:

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

Pendekatan 1:

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

Pendekatan 2:

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

Memilih untuk 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);

Ini mengurangkan dengan ketara 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!

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