Pemasukan Batch dalam PHP PDO MySQL
Memasukkan berbilang baris dengan cekap dalam pangkalan data MySQL ialah tugas biasa. Artikel ini meneroka amalan terbaik untuk memasukkan berbilang baris menggunakan PHP PDO MySQL.
Menggunakan Penyata Disediakan
Satu pendekatan melibatkan penggunaan pernyataan yang disediakan, seperti yang ditunjukkan dalam coretan kod pertama :
foreach($rows as $row){ $stmt->execute($row); }
Ini adalah kaedah yang agak mudah dan mudah, di mana setiap baris disisipkan secara individu menggunakan pernyataan yang disediakan. Walau bagaimanapun, untuk set data yang besar, pendekatan ini boleh menjadi perlahan disebabkan oleh overhed mencipta dan melaksanakan berbilang kenyataan yang disediakan.
Pertanyaan Berkelompok dengan Letupan
Pendekatan alternatif ialah dengan gabungkan semua nilai ke dalam satu pertanyaan menggunakan implode(), seperti yang dicadangkan dalam coretan kod kedua:
$sql .= //not sure the best way to concatenate all the values, use implode?
Pendekatan ini mengurangkan overhed yang dikaitkan dengan menyediakan dan melaksanakan berbilang kenyataan dengan menggabungkan semua baris menjadi satu pertanyaan kelompok.
Menggunakan Pertanyaan Berparameter
Walau bagaimanapun, penyelesaian yang lebih baik ialah menggunakan pertanyaan berparameter, seperti yang ditunjukkan dalam coretan kod kedua:
foreach($row as $element) { $paramArray[] = $element; } ... $stmt->execute($paramArray);
Pertanyaan berparameter membolehkan anda menentukan aksara pemegang tempat (cth., ?) dalam pernyataan SQL anda dan menghantar nilai sebenar sebagai parameter semasa pelaksanaan. Ini memberikan prestasi dan keselamatan yang lebih baik dengan menghalang serangan suntikan SQL.
Kaedah Mana Yang Lebih Cepat dan Selamat?
Pertanyaan kelompok dengan implode() boleh lebih pantas daripada memasukkan baris secara individu, tetapi ia tidak selamat seperti menggunakan pertanyaan berparameter. Pertanyaan berparameter memberikan perlindungan yang lebih baik terhadap suntikan SQL dan secara amnya dianggap sebagai amalan terbaik untuk memasukkan berbilang baris dalam PHP PDO MySQL.
Kesimpulan
Sementara kesederhanaan memasukkan baris secara individu mungkin kelihatan menarik, untuk set data yang lebih besar, sisipan kelompok menggunakan pertanyaan berparameter memberikan prestasi dan keselamatan yang unggul. Dengan menggunakan teknik yang diterangkan dalam artikel ini, anda boleh memasukkan berbilang baris dengan cekap ke dalam pangkalan data MySQL anda.
Atas ialah kandungan terperinci Kaedah PHP PDO MySQL manakah yang Lebih Pantas dan Lebih Selamat untuk Sisipan Batch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!