Maison > Article > base de données > Comment récupérer des variables de sortie à partir de procédures stockées MySQL en PHP avec PDO ?
Objectif : Récupérer la valeur LAST_INSERT_ID() d'une procédure stockée MySQL et l'attribuer à 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 du 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 des variables PHP à 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.
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!