Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan dengan PDO dalam PHP?

Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan dengan PDO dalam PHP?

Barbara Streisand
Lepaskan: 2024-12-25 16:27:10
asal
234 orang telah melayarinya

How Can I Execute Multiple Queries with PDO in PHP?

Sokongan PDO untuk Berbilang Pertanyaan: PDO_MYSQL dan PDO_MYSQLND

PDO tradisional tidak menyokong pelaksanaan berbilang pertanyaan dalam satu pernyataan. Walau bagaimanapun, PDO_MYSQL dan PDO_MYSQLND telah dibangunkan untuk menangani had ini.

PDO_MYSQL dan PDO_MYSQLND

PDO_MYSQL kini dianggap tidak digunakan lagi. Malah, sejak PHP 5.3, MySQL PDO telah menggunakan pemacu PDO_MYSQLND secara lalai.

Melaksanakan Berbilang Pertanyaan dengan PDO

Untuk melaksanakan berbilang pertanyaan dengan PDO, anda memerlukan berikut:

  • PHP 5.3
  • Pemacu PDO_MYSQLND (tersedia sebagai pemacu MySQL lalai)
  • Pernyataan yang disediakan yang dicontohi (PDO::ATTR_EMULATE_PREPARES ditetapkan kepada 1)

Menggunakan exec

Untuk pertanyaan SQL dengan nilai tetap, kaedah exec() boleh digunakan:

$db->exec("
    DELETE FROM car;
    INSERT INTO car(name, type) VALUES ('car1', 'coupe');
    INSERT INTO car(name, type) VALUES ('car2', 'coupe');
");
Salin selepas log masuk

Menggunakan Penyata Disediakan

Untuk pertanyaan dengan data daripada pembolehubah PHP, pernyataan yang disediakan diperlukan:

$stmt = $db->prepare("
    DELETE FROM car;
    INSERT INTO car(name, type) VALUES (:car1, :type1);
    INSERT INTO car(name, type) VALUES (:car2, :type2);
");

$stmt->execute([
    "car1" => "brand1",
    "type1" => "coupe",
    "car2" => "brand2",
    "type2" => "coupe"
]);

while ($stmt->nextRowset()) {
    echo $db->lastInsertId();
}
Salin selepas log masuk

Perhatikan bahawa dalam kedua-dua kes, adalah penting untuk menetapkan PDO::ATTR_EMULATE_PREPARES kepada 1 apabila menggunakan berbilang pertanyaan.

Nota Pengekodan

Apabila menggunakan pernyataan yang disediakan yang dicontohi, pastikan anda menentukan pengekodan yang betul dalam DSN untuk mengelakkan potensi kelemahan suntikan SQL.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan dengan PDO dalam PHP?. 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