Appel de procédures stockées MySQL avec des paramètres d'entrée et de sortie (pas les paramètres "INOUT") en PHP
Introduction :
Appeler des procédures stockées MySQL depuis PHP est une tâche courante, mais lorsqu'il s'agit de paramètres d'entrée et de sortie, cela peut être plus complexe. Cet article vous guidera à travers l'approche spécifique requise pour effectuer de tels appels à l'aide de l'interface procédurale de MySQLi.
Configuration de la procédure stockée :
Considérez la procédure stockée suivante dans MySQL :
DELIMITER $$ 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 ) BEGIN SET output_sum = input_param_1 + input_param_2 + input_param_3; SET output_product = input_param_1 * input_param_2 * input_param_3; SET output_average = (input_param_1 + input_param_2 + input_param_3) / 3; END$$ DELIMITER ;
Liaison des paramètres d'entrée et de sortie :
Pour appeler la procédure stockée et spécifier les paramètres d'entrée et de sortie, utilisez la fonction mysqli_stmt_bind_param() :
mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3);
où $procInput1, $procInput2 et $procInput3 sont les paramètres d'entrée.
Pour récupérer les paramètres de sortie, vous devrez utiliser des variables utilisateur dans votre procédure stockée, puis récupérer leurs valeurs après exécuter l'appel :
$select = mysqli_query($mysqli, 'SELECT @sum, @product, @average'); $result = mysqli_fetch_assoc($select);
où $select est une requête qui récupère les variables utilisateur (@sum, @product, @average) définies par la procédure stockée.
Code Exemple :
Voici un exemple de code complet :
$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'];
En suivant ces étapes, vous pouvez appeler avec succès des procédures stockées MySQL qui nécessitent à la fois des paramètres d'entrée et de sortie.
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!