Appel d'une procédure stockée avec le paramètre Out à l'aide de PDO : bug résolu
Malgré le suivi du manuel PDO, vous pouvez rencontrer un argument "OUT ou INOUT ...n'est pas une variable" erreur lors de l'appel d'une procédure stockée avec un paramètre de sortie. Cela est probablement dû à un bug dans les versions antérieures de PHP et MySQL.
Pour résoudre ce problème, implémentez la solution de contournement suivante :
DELIMITER // CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100)) BEGIN SET var1 = 'This is a test'; SELECT var1; -- Select added to retrieve the output parameter END //
$stmt = $db->prepare("CALL proc_OUT(?)"); $stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); $stmt->execute();
$result = $db->query("SELECT var1 FROM proc_OUT"); foreach ($result as $row) { echo $row['var1']; }
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!