Rumah > pembangunan bahagian belakang > tutorial php > Bolehkah PDO_MYSQL dan PDO_MYSQLND Melaksanakan Berbilang Pertanyaan SQL dalam Satu Penyata?

Bolehkah PDO_MYSQL dan PDO_MYSQLND Melaksanakan Berbilang Pertanyaan SQL dalam Satu Penyata?

Linda Hamilton
Lepaskan: 2024-12-23 13:22:54
asal
1056 orang telah melayarinya

Can PDO_MYSQL and PDO_MYSQLND Execute Multiple SQL Queries in One Statement?

Sokongan PDO untuk Berbilang Pertanyaan (PDO_MYSQL, PDO_MYSQLND)

Walaupun terdapat persepsi bahawa PDO tidak menyokong berbilang pertanyaan dalam satu pernyataan, PDO_MYSQL dan PDO_MYSQLND menyediakan fungsi ini.

PDO_MYSQL dan PDO_MYSQLND

PDO_MYSQL telah digantikan oleh PDO_MYSQLND dalam PHP 5.3. Mengelirukan, nama itu kekal PDO_MYSQL, tetapi PDO_MYSQLND ialah pemacu lalai untuk MySQL PDO.

Cara Melaksanakan Berbilang Pertanyaan

Untuk melaksanakan berbilang pertanyaan serentak, keperluan berikut mesti dipenuhi:

  • PHP 5.3 atau kemudian
  • sambungan mysqlnd
  • Pernyataan yang disediakan yang dicontohi (PDO::ATTR_EMULATE_PREPARES ditetapkan kepada 1, yang merupakan lalai untuk MySQL)

Kaedah untuk Melaksanakan Berbilang Pertanyaan

Menggunakan exec:

$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "DELETE FROM car; 
INSERT INTO car(name, type) VALUES ('car1', 'coupe'); 
INSERT INTO car(name, type) VALUES ('car2', 'coupe');";

$db->exec($sql);
Salin selepas log masuk

Menggunakan pernyataan:

$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "DELETE FROM car; 
INSERT INTO car(name, type) VALUES (:car1, :type1); 
INSERT INTO car(name, type) VALUES (:car2, :type2);";

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

// Check for errors and collect query results
do {
    echo $pdo->lastInsertId(); // for example
} while ($stmt->nextRowset());
Salin selepas log masuk

Nota: Apabila menggunakan pernyataan yang disediakan yang dicontohi, tetapkan pengekodan yang sesuai dalam DSN untuk mengelakkan potensi kelemahan suntikan SQL.

Atas ialah kandungan terperinci Bolehkah PDO_MYSQL dan PDO_MYSQLND Melaksanakan Berbilang Pertanyaan SQL dalam Satu Penyata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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