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 :
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)"); $dbh->query("SELECT @someOutParameter");
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)"); $stmt->execute(array($someInParameter1, $someInParameter2));
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!