Bagaimanakah saya boleh memasukkan berbilang baris data ke dalam pangkalan data menggunakan satu pernyataan yang disediakan dengan PDO?

Barbara Streisand
Lepaskan: 2024-11-06 22:05:02
asal
669 orang telah melayarinya

How can I insert multiple rows of data into a database using a single prepared statement with PDO?

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);
Salin selepas log masuk

Jika berbilang baris perlu disisipkan, pendekatan berikut boleh dilaksanakan:

  1. Bina Klausa VALUES: Sertai berbilang set nilai menggunakan kurungan dan koma. Sebagai contoh, nilai untuk tiga baris akan kelihatan seperti: ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi ').
  2. Jana Templat Pemegang Tempat: Isikan tatasusunan dengan ruang letak (?) untuk setiap nilai yang akan dimasukkan. Untuk tiga baris dengan tiga lajur setiap satu, ini ialah (?, ?, ?), (?, ?, ?), (?, ?, ?).
  3. Gabungkan SQL Pernyataan: Tambahkan templat pemegang tempat sebagai klausa VALUES pada pertanyaan INSERT. Pernyataan akhir ialah:

    INSERT INTO Table (col1, col2, col3) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?)
    Salin selepas log masuk
  4. 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
    Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!