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
Barbara Streisandasal
2024-12-25 16:27:10226semak imbas

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');
");

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();
}

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!

Kenyataan:
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