Memasukkan Berbilang Baris dengan Penyata Disediakan PDO
Pemasukan berbilang baris data ke dalam pangkalan data menggunakan satu pernyataan yang disediakan adalah mungkin. Penyataan yang disediakan meningkatkan keselamatan dan kecekapan dengan menghalang serangan suntikan SQL dan mengoptimumkan pelaksanaan pertanyaan.
Pertimbangkan contoh berikut untuk memasukkan data ke dalam jadual bernama 'Jadual' dengan lajur 'col1', 'col2' dan 'col3' :
$params = array(); $params[':val1'] = "val1"; $params[':val2'] = "val2"; $params[':val3'] = "val3"; $sql = "INSERT INTO table VALUES (col1, col2, col3) VALUES (:val1,:val2,:val3)"; $stmt = DB::getInstance()->prepare($sql); $stmt->execute($params);
Jika berbilang baris perlu disisipkan, pendekatan berikut boleh dilaksanakan:
Gabungkan SQL Pernyataan: Tambahkan templat pemegang tempat sebagai klausa VALUES pada pertanyaan INSERT. Pernyataan akhir ialah:
INSERT INTO Table (col1, col2, col3) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?)
Sediakan dan Laksanakan: Sediakan pernyataan lanjutan menggunakan PDO. Laksanakan pernyataan itu, menghantar tatasusunan dengan semua nilai untuk dimasukkan dalam susunan yang sama seperti pemegang tempat.
$rows = array( array('abc', 'def', 'ghi'), array('abc', 'def', 'ghi'), array('abc', 'def', 'ghi') ); // Your code here as explained in the full response
Kelebihan pendekatan ini ialah ia menggabungkan semua nilai menjadi satu pertanyaan INSERT tunggal sambil mengekalkan faedah keselamatan dan pengoptimuman kenyataan yang disediakan.
Untuk senario yang melibatkan sejumlah besar baris, mungkin lebih cekap menggunakan gelung untuk memasukkannya satu demi satu. Ini memastikan prestasi yang lebih baik dan mengelakkan potensi masalah ingatan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memasukkan berbilang baris data ke dalam pangkalan data menggunakan satu pernyataan yang disediakan dengan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!