Objectif : Récupérez la valeur LAST_INSERT_ID() d'une procédure stockée MySQL et attribuez-la à une variable PHP.
Malgré le code PHP fourni utilisant les liaisons PDO, il ne parvient pas à capturer la variable de sortie LAST_INSERT_ID() de la procédure stockée simpleProcedure.
La récupération des variables de sortie des procédures stockées MySQL dans PHP PDO implique un processus en deux étapes :
Étape 1 : exécution de la procédure
$stmt = $db->prepare("CALL simpleProcedure(:name, @returnid)"); $stmt->bindValue(':name', $name, PDO::PARAM_STR); $stmt->bindParam(':returnid', $returnid, PDO::PARAM_INT, 11, PDO::PARAM_INOUT); // Note the PDO::PARAM_INOUT $stmt->execute();
En liant l'espace réservé :returnid à INOUT, PDO transmettra non seulement la variable PHP à la procédure, mais la mettra également à jour avec la valeur de la variable de sortie.
Étape 2 : Récupération de la variable de sortie
$sql = "SELECT @returnid AS output_id"; $result = $db->query($sql)->fetch(PDO::FETCH_ASSOC); $lastInsertId = $result['output_id'];
Interrogez la variable utilisateur MySQL @returnid pour attribuer sa valeur à la variable PHP $lastInsertId.
Liaison PHP Les variables des paramètres INOUT et OUT pour les procédures MySQL peuvent rencontrer des erreurs d'exécution. Il est recommandé de lier uniquement les variables aux paramètres IN.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3