Appel de procédures stockées MySQL avec des paramètres d'entrée et de sortie en PHP
Lorsque vous travaillez avec des procédures stockées MySQL, il est souvent nécessaire de transmettre et récupérer les données de la base de données. C’est là que les paramètres d’entrée et de sortie entrent en jeu. Cependant, il peut être difficile d'utiliser à la fois les paramètres d'entrée et de sortie, surtout sans utiliser les paramètres "INOUT".
Comprendre les paramètres d'entrée et de sortie de la procédure
Considérons les exemple de procédure stockée dans la base de données MySQL :
CREATE PROCEDURE `test_proc`( in input_param_1 int, in input_param_2 int, in input_param_3 int, out output_sum int, out output_product int, out output_average int )
Cette procédure attend trois paramètres d'entrée (input_param_1, input_param_2, input_param_3) et trois paramètres de sortie (output_sum, output_product, output_average). Les paramètres d'entrée sont utilisés pour calculer les paramètres de sortie.
Liaison des paramètres d'entrée et de sortie à l'aide de MySQLi
Pour appeler cette procédure stockée depuis PHP à l'aide de MySQLi, vous aurez besoin pour lier les paramètres d’entrée et de sortie. Dans le code suivant, nous utilisons l'interface procédurale pour établir une connexion, préparer l'appel de procédure stockée, lier les paramètres d'entrée, exécuter l'appel et récupérer les paramètres de sortie des variables utilisateur :
<?php $procInput1 = 123; $procInput2 = 456; $procInput3 = 789; $mysqli = mysqli_connect(...); $call = mysqli_prepare($mysqli, 'CALL test_proc(?, ?, ?, @sum, @product, @average)'); mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3); mysqli_stmt_execute($call); $select = mysqli_query($mysqli, 'SELECT @sum, @product, @average'); $result = mysqli_fetch_assoc($select); $procOutput_sum = $result['@sum']; $procOutput_product = $result['@product']; $procOutput_average = $result['@average']; mysqli_stmt_close($call); mysqli_close($mysqli); ?>
Dans le ci-dessus, la fonction mysqli_prepare prépare l'appel de procédure stockée. La fonction mysqli_stmt_bind_param lie les paramètres d'entrée à l'appel. La fonction mysqli_stmt_execute exécute l'appel.
Après avoir exécuté la procédure stockée, nous devons récupérer les paramètres de sortie des variables utilisateur à l'aide d'une instruction SELECT distincte. En effet, MySQLi ne prend pas en charge nativement la récupération directe des paramètres de sortie.
Conclusion
En comprenant comment lier les paramètres d'entrée et de sortie dans les procédures stockées MySQL à l'aide de MySQLi, vous peut interagir efficacement avec votre base de données et récupérer les données nécessaires à vos applications PHP.
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!