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
971 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!

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