Maison >base de données >tutoriel mysql >Comment appeler des procédures stockées MySQL avec des paramètres d'entrée et de sortie en PHP ?

Comment appeler des procédures stockées MySQL avec des paramètres d'entrée et de sortie en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 04:09:03299parcourir

How to Call MySQL Stored Procedures with Both Input and Output Parameters in PHP?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn