Maison > développement back-end > tutoriel php > PDO_MYSQL/PDO_MYSQLND prend-il en charge plusieurs requêtes dans une seule instruction ?

PDO_MYSQL/PDO_MYSQLND prend-il en charge plusieurs requêtes dans une seule instruction ?

Linda Hamilton
Libérer: 2024-12-26 09:33:10
original
677 Les gens l'ont consulté

Does PDO_MYSQL/PDO_MYSQLND Support Multiple Queries in a Single Statement?

Prise en charge PDO pour plusieurs requêtes (PDO_MYSQL, PDO_MYSQLND)

Question originale :

Malgré le fait d'être conscient du manque de PDO prise en charge de l'exécution de plusieurs requêtes dans une seule instruction, des préoccupations ont été soulevées concernant la disponibilité de la prise en charge de telles requêtes. fonctionnalité dans PDO_MYSQL et PDO_MYSQLND.

Réponse :

Comprendre PDO_MYSQL et PDO_MYSQLND :

PDO_MYSQL a été déprécié et remplacé par PDO_MYSQLND en PHP 5.3. Cependant, le nom reste PDO_MYSQL, ce qui en fait le pilote par défaut pour MySQL PDO.

Exécution de plusieurs requêtes à l'aide de PDO :

Pour exécuter plusieurs requêtes à la fois, vous avez besoin du suivant :

  • PHP 5.3 ou supérieur
  • MySQLND
  • Instructions préparées émulées (PDO::ATTR_EMULATE_PREPARES défini sur 1, qui est la valeur par défaut pour MySQL)

Utilisation exec :

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

$db->exec($sql);
Copier après la connexion

Remarque : Cette méthode est limitée au SQL contenant des valeurs constantes.

Utilisation des instructions :

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

Requête en boucle Résultats :

N'oubliez pas de toujours parcourir les résultats de la requête après avoir exécuté l'instruction pour vérifier les erreurs ou collecter les résultats.

Remarque sur les instructions préparées émulées :

  • Assurez-vous que le codage approprié est défini dans le DSN pour éviter les risques potentiels d'injection SQL.
  • Émuler les déclarations préparées peuvent introduire une légère pénalité de performances.

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