Maison >base de données >tutoriel mysql >Comment récupérer les paramètres OUT des procédures stockées MySQL en PHP ?

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

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 07:08:30872parcourir

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

Accès aux paramètres OUT dans les procédures stockées PHP MySQL

Les procédures stockées sont utiles pour encapsuler des opérations de base de données complexes. Cependant, récupérer le résultat d’un paramètre OUT en PHP peut s’avérer difficile. Cet article fournit une solution détaillée.

Solution

  1. Connectez-vous à la base de données :Établissez une connexion MySQL à l'aide de l'extension mysqli.
  2. Appelez la procédure stockée : Exécutez la procédure stockée à l'aide de la méthode multi_query(), en spécifiant le(s) paramètre(s) OUT comme indiqué dans la syntaxe ci-dessous :

    <code class="php">$mysqli->multi_query("CALL myproc($ivalue,@x);SELECT @x");</code>
  3. Récupérer les résultats : La méthode multi_query() renvoie un booléen indiquant le succès. Si l'appel a réussi :

    • Utilisez store_result() pour récupérer les résultats de la première requête (l'exécution de la procédure stockée).
    • Utilisez fetch_row() pour parcourir les lignes de résultats. et accédez à la valeur du paramètre OUT.

Exemple

Considérons une procédure stockée myproc avec un paramètre IN i et un paramètre OUT j . Voici un exemple de code PHP pour accéder au paramètre OUT :

<code class="php">$mysqli = new mysqli("HOST", "USR", "PWD", "DBNAME");
$ivalue = 1;
$res = $mysqli->multi_query("CALL myproc($ivalue,@x);SELECT @x");
if ($res) {
  $result = $mysqli->store_result();
  $row = $result->fetch_row();
  $output = $row[0]; // OUT parameter value
  $result->close();
}
$mysqli->close();</code>

Ce code montre comment récupérer le paramètre OUT j et le stocker dans la variable $output.

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