Maison > base de données > tutoriel mysql > Comment résoudre l'erreur « L'argument OUT ou INOUT… n'est pas une variable » lors de l'appel de procédures stockées avec PDO ?

Comment résoudre l'erreur « L'argument OUT ou INOUT… n'est pas une variable » lors de l'appel de procédures stockées avec PDO ?

Linda Hamilton
Libérer: 2024-11-07 00:38:03
original
262 Les gens l'ont consulté

How to Resolve

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

Cette question explore un problème rencontré lors de la tentative d'appel d'une procédure stockée avec un paramètre de sortie à l'aide de PDO en PHP. Le message d'erreur "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 BEFORE" s'affiche.

Pour résoudre ce problème problème, les étapes suivantes sont suggérées :

  1. Utilisez une requête distincte pour récupérer le paramètre de sortie : Au lieu de lier directement le paramètre de sortie, exécutez une autre requête pour récupérer la valeur du paramètre de sortie après l’exécution de la procédure stockée. Par exemple :
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)");
$dbh->query("SELECT @someOutParameter");
Copier après la connexion
  1. Insérez "SELECT @someOutParameter" dans la procédure stockée : Vous pouvez également insérer "SELECT @someOutParameter" dans la procédure stockée, puis lier le résultat au paramètre de sortie à l'aide d'instructions préparées. Par exemple :
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt ->execute(array($someInParameter1, $someInParameter2));
Copier après la connexion

En implémentant ces solutions, l'erreur liée au paramètre de sortie dans la procédure stockée devrait être résolue.

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