Maison > développement back-end > tutoriel php > Comment puis-je exécuter plusieurs requêtes avec PDO en PHP ?

Comment puis-je exécuter plusieurs requêtes avec PDO en PHP ?

Barbara Streisand
Libérer: 2024-12-25 16:27:10
original
234 Les gens l'ont consulté

How Can I Execute Multiple Queries with PDO in PHP?

Prise en charge de PDO pour plusieurs requêtes : PDO_MYSQL et PDO_MYSQLND

Le PDO traditionnel ne prend pas en charge nativement l'exécution de plusieurs requêtes dans une seule instruction. Cependant, PDO_MYSQL et PDO_MYSQLND ont été développés pour résoudre cette limitation.

PDO_MYSQL et PDO_MYSQLND

PDO_MYSQL est désormais considéré comme obsolète. En fait, depuis PHP 5.3, MySQL PDO utilise le pilote PDO_MYSQLND par défaut.

Exécuter plusieurs requêtes avec PDO

Pour exécuter plusieurs requêtes avec PDO, vous avez besoin ce qui suit :

  • PHP 5.3
  • Pilote PDO_MYSQLND (disponible comme pilote MySQL par défaut)
  • Instructions préparées émulées (PDO::ATTR_EMULATE_PREPARES défini sur 1)

Utilisation d'exec

Pour les requêtes SQL avec des valeurs constantes, la méthode exec() peut être utilisé :

$db->exec("
    DELETE FROM car;
    INSERT INTO car(name, type) VALUES ('car1', 'coupe');
    INSERT INTO car(name, type) VALUES ('car2', 'coupe');
");
Copier après la connexion

Utilisation d'instructions préparées

Pour les requêtes avec des données de variables PHP, des instructions préparées sont nécessaires :

$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();
}
Copier après la connexion

Remarque que dans les deux cas, il est essentiel de définir PDO::ATTR_EMULATE_PREPARES à 1 lors de l'utilisation de plusieurs requêtes.

Remarque sur le codage

Lorsque vous utilisez des instructions préparées émulées, assurez-vous de spécifier le codage correct dans le DSN pour éviter les vulnérabilités potentielles d'injection SQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal