Sisipan Disediakan PDO: Meningkatkan Keselamatan dan Prestasi untuk Sisipan Data Pukal
Dalam bidang manipulasi data, pernyataan yang disediakan PDO menawarkan tahap yang lebih baik keselamatan dan prestasi berbanding dengan pertanyaan statik. Ini meluas kepada sisipan data pukal, di mana berbilang baris nilai boleh disisipkan dengan cekap dengan satu pertanyaan.
Seseorang boleh memanfaatkan kenyataan PDO yang disediakan untuk menjana "memasukkan berbilang baris nilai dengan menggunakan satu pertanyaan." Kuncinya ialah untuk mencipta pertanyaan berstruktur yang menampung berbilang set nilai.
Untuk menggambarkan, mari kita pertimbangkan pernyataan SQL berikut:
INSERT INTO `tbl` (`key1`,`key2`) VALUES ('r1v1','r1v2'),('r2v1','r2v2'),...
Dalam pernyataan ini, setiap set nilai disertakan dalam set kurungan sendiri. Untuk menyesuaikan pertanyaan ini bagi sisipan yang disediakan, kita boleh menggunakan jujukan ruang letak untuk setiap lajur dan menggabungkan ruang letak ini untuk mencipta bahagian VALUES.
Sebagai contoh, jika kita mempunyai dua lajur, bahagian VALUES ialah:
(?,?),
Kami kemudian mereplikasi bahagian VALUES ini untuk setiap baris data dan memisahkannya dengan koma:
(?,?), (?,?), ...
Akhir sekali, kami boleh membina pertanyaan lengkap:
INSERT INTO `tbl` (`key1`,`key2`) VALUES (?,?) , (?,?), ...
Untuk melaksanakan pertanyaan ini dengan PDO, kami menyediakan pernyataan dan menyediakan tatasusunan yang mengandungi semua nilai menggunakan laksanakan() kaedah. Kod di bawah menunjukkan pendekatan ini:
$data = [['valueA1', 'valueB1'], ['valueA2', 'valueB2']]; $values = implode(',', array_fill(0, count($data[0]), '?')); $sql = "INSERT INTO table (colA, colB) VALUES " . implode(',', array_fill(0, count($data), "($values)")) . ";"; $stmt = $db->prepare($sql); $stmt->execute(array_merge(...$data));
Teknik ini bukan sahaja memastikan integriti data dengan membersihkan input tetapi juga mengoptimumkan prestasi dengan melaksanakan satu pertanyaan untuk sisipan berbilang baris.
Atas ialah kandungan terperinci Bagaimanakah Penyata Disediakan PDO Boleh Mengoptimumkan Sisipan Data Pukal untuk Keselamatan dan Prestasi yang Dipertingkatkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!