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
Libérer: 2024-11-07 04:09:03
original
225 Les gens l'ont consulté

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 ;
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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'];
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal