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'];
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'];
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!