Maison > base de données > tutoriel mysql > le corps du texte

Comment récupérer les paramètres de sortie des procédures stockées MySQL en PHP ?

Susan Sarandon
Libérer: 2024-11-06 19:13:02
original
209 Les gens l'ont consulté

How to Retrieve Output Parameters from MySQL Stored Procedures in PHP?

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

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);

?>
Copier après la connexion

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!

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