Maison > base de données > tutoriel mysql > Comment appeler des procédures stockées avec des paramètres de sortie à l'aide de PDO lorsque vous rencontrez un bug connu ?

Comment appeler des procédures stockées avec des paramètres de sortie à l'aide de PDO lorsque vous rencontrez un bug connu ?

Linda Hamilton
Libérer: 2024-11-07 15:53:03
original
767 Les gens l'ont consulté

How to Call Stored Procedures with Output Parameters Using PDO When Encountering a Known Bug?

Appel d'une procédure stockée avec un paramètre de sortie à l'aide de PDO

Lorsque vous tentez d'exécuter une procédure stockée avec un paramètre de sortie à l'aide de PDO, il est essentiel de considérer un bug connu. Ce bug peut conduire à l'erreur suivante, malgré le fonctionnement normal de la procédure lorsqu'elle est appelée directement depuis MySQL :

"SQLSTATE[42000] : Erreur de syntaxe ou violation d'accès : 1414 OUT ou INOUT argument 1 pour la routine mydb.proc_OUT n'est pas une variable ou une NOUVELLE pseudo-variable dans le déclencheur AVANT"

Pour résoudre ce problème, il est recommandé d'exécuter la procédure stockée en utilisant l'approche suivante :

  1. Appeler la procédure stockée et sélectionnez le paramètre de sortie :
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)");
$dbh->query("SELECT @someOutParameter");
Copier après la connexion
  1. Préparez l'instruction et sélectionnez le paramètre de sortie :
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt->execute(array($someInParameter1, $someInParameter2));
Copier après la connexion

En suivant cette approche, vous pouvez appeler efficacement des procédures stockées avec des paramètres de sortie à l'aide de PDO, même en présence du bug susmentionné.

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