Maison > base de données > tutoriel mysql > Comment exécuter des procédures stockées MySQL avec des paramètres d'entrée et de sortie à l'aide de PHP ?

Comment exécuter des procédures stockées MySQL avec des paramètres d'entrée et de sortie à l'aide de PHP ?

Patricia Arquette
Libérer: 2024-11-08 11:25:01
original
1056 Les gens l'ont consulté

How to Execute MySQL Stored Procedures with Both Input and Output Parameters Using PHP?

Appel de procédures stockées MySQL avec des paramètres d'entrée et de sortie à l'aide de PHP

En PHP, exécution de procédures stockées MySQL qui nécessitent à la fois des paramètres d'entrée et de sortie peut être un défi. Bien que MySQLi fournisse des fonctions spécifiques pour gérer séparément les paramètres d'entrée et de sortie, il n'existe pas de prise en charge directe pour ce scénario.

Pour surmonter cette limitation, une solution de contournement impliquant des variables utilisateur MySQL est nécessaire. Voici un aperçu de son fonctionnement :

Utilisation de l'interface procédurale MySQLi :

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = mysqli_connect('host', 'user', 'password', 'database');

$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

Ici, nous initialisons d'abord les variables d'entrée et établissons une connexion à la base de données MySQL. . Une instruction préparée est utilisée pour exécuter la procédure stockée, avec des paramètres d'entrée liés. Après l'exécution, une requête distincte est utilisée pour récupérer les paramètres de sortie stockés dans les variables utilisateur MySQL.

Utilisation de l'interface orientée objet MySQLi :

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = new mysqli('host', 'user', 'password', 'database');

$call = $mysqli->prepare('CALL test_proc(?, ?, ?, @sum, @product, @average)');
$call->bind_param('iii', $procInput1, $procInput2, $procInput3);
$call->execute();

$select = $mysqli->query('SELECT @sum, @product, @average');
$result = $select->fetch_assoc();
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];
Copier après la connexion

Ce code démontre la même approche en utilisant l'interface orientée objet, où la connexion à la base de données et l'exécution des procédures stockées sont gérées via des méthodes objet.

En tirant parti de la solution de contournement avec les variables utilisateur MySQL, vous pouvez exécuter efficacement des procédures stockées avec des paramètres d'entrée et de sortie en PHP en utilisant l'interface MySQLi.

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