Rumah > Artikel > pangkalan data > Bagaimanakah Saya Boleh Memasukkan Berbilang Titik Data dengan Cekap daripada Array ke dalam MySQL Menggunakan Penyata Disediakan dalam PHP & PDO?
Dalam senario seperti pendaftaran dalam talian, pengguna sering memilih berbilang item yang mereka ingin beli, daftar masuk atau sertai. Item ini biasanya disimpan dalam tatasusunan untuk memudahkan pemprosesannya. Walau bagaimanapun, memasukkan data daripada tatasusunan ke dalam pangkalan data MySQL menggunakan pernyataan yang disediakan dalam PHP dan PDO boleh mencabar. Artikel ini meneroka kaedah untuk mengatasi cabaran ini.
Satu pendekatan ialah menggunakan gelung for dan melaksanakan berbilang kejadian pernyataan SQL, seperti yang dilihat di bawah:
<code class="php">for($j = 0; $j < (count($data)-1); $j++) { $stmt = $db->prepare("INSERT INTO table SET memberID=?, programID=?, date_added=NOW()"); $stmt->execute(array($memberid, $data[$j])); }</code>
Walaupun kaedah ini agak mudah, ia membentangkan isu prestasi apabila berurusan dengan set data yang besar.
Pendekatan yang lebih cekap ialah membina satu pernyataan SQL secara dinamik. Seseorang boleh mencapai ini dengan mengulangi tatasusunan dan menjana senarai ruang letak dan nilai yang dipisahkan koma dalam kurungan:
<code class="php">$sql = 'INSERT INTO table (memberID, programID) VALUES '; $insertQuery = array(); $insertData = array(); foreach ($data as $row) { $insertQuery[] = '(?, ?)'; $insertData[] = $memberid; $insertData[] = $row; } if (!empty($insertQuery)) { $sql .= implode(', ', $insertQuery); $stmt = $db->prepare($sql); $stmt->execute($insertData); }</code>
Kaedah ini menggabungkan data individu ke dalam satu pertanyaan dengan berkesan untuk dimasukkan ke dalam pangkalan data. Ia memastikan pemprosesan yang cekap dan mengurangkan overhed, menjadikannya sesuai untuk senario dengan set data yang besar atau apabila pengoptimuman prestasi adalah kritikal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Titik Data dengan Cekap daripada Array ke dalam MySQL Menggunakan Penyata Disediakan dalam PHP & PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!