Rumah > Artikel > pangkalan data > Bagaimana untuk Memasukkan Berbilang Baris dengan Cekap Menggunakan PDO dalam MySQL?
Memasukkan Berbilang Baris Dengan Cekap Menggunakan PDO dalam MySQL
Apabila berhadapan dengan tugas memasukkan berbilang baris ke dalam jadual MySQL, pembangun sering memikirkan pendekatan terbaik untuk menggunakan PDO. Terdapat dua pilihan utama: melaksanakan baris satu demi satu atau menggabungkan pernyataan SQL dan melaksanakannya sebagai satu kelompok.
Pilihan 1: Pelaksanaan Baris Individu
Pendekatan ini melibatkan penyediaan pernyataan SQL dan melaksanakannya untuk setiap baris secara berasingan:
$sql = "insert into `table_name` (col1, col2, col3) values (?, ?, ?)"; $stmt = $db->prepare($sql); foreach ($rows as $row) { $stmt->execute($row); }
Pilihan 2: Kemasukan Kelompok
Dalam pendekatan ini, pernyataan SQL digabungkan dengan nilai baris dan kemudian dilaksanakan sebagai satu arahan:
$sql = "insert into `table_name` (col1, col2, col3) values "; $paramArray = []; $sqlArray = []; foreach ($rows as $row) { $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')'; foreach ($row as $element) { $paramArray[] = $element; } } $sql .= implode(',', $sqlArray); $stmt = $db->prepare($sql); $stmt->execute($paramArray);
Prestasi Pertimbangan
Walaupun pendekatan penyisipan kelompok secara teorinya lebih pantas, perbezaan prestasi sebenar antara kedua-dua pilihan sering diabaikan. Dalam kebanyakan kes, masa yang dijimatkan dengan melaksanakan kenyataan sekali akan diimbangi oleh overhed penyatuan nilai.
Pertimbangan Keselamatan
Kedua-dua pendekatan dianggap selamat kerana ia gunakan pernyataan yang disediakan untuk mengelakkan suntikan SQL serangan.
Pengesyoran
Untuk kesederhanaan dan kemudahan pelaksanaan, pendekatan pelaksanaan baris individu biasanya disyorkan. Walau bagaimanapun, jika prestasi adalah kebimbangan kritikal, pendekatan sisipan kelompok boleh diterokai.
Nota Tambahan
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Berbilang Baris dengan Cekap Menggunakan PDO dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!