Comment récupérer plusieurs jeux de résultats à partir d'une procédure stockée à l'aide de MySQLi en PHP ?

Barbara Streisand
Libérer: 2024-11-01 08:58:02
original
707 Les gens l'ont consulté

How do I retrieve multiple result sets from a stored procedure using MySQLi in PHP?

Récupération de plusieurs ensembles de résultats à partir d'une procédure stockée avec MySQLi

Votre procédure stockée, « multiples », génère plusieurs ensembles de résultats. Pour avancer et récupérer les données des ensembles de résultats suivants, suivez ces étapes à l'aide de l'extension MySQLi :

Style procédural PHP :

<code class="php">// Prepare the statement
$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');

// Bind parameters
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);

// Execute the statement
mysqli_stmt_execute($stmt);

// Fetch the first result set
$result1 = mysqli_stmt_get_result($stmt);
while ($row1 = $result1->fetch_assoc()) {
  echo "Result 1: " . $row1['id'] . "\n";
}

// Advance to the second result set
mysqli_stmt_next_result($stmt);
$result2 = mysqli_stmt_get_result($stmt);

// Fetch and print the second result set
while ($row2 = $result2->fetch_assoc()) {
  echo "Result 2: " . $row2['id'] . "\n";
}

// Close the statement
mysqli_stmt_close($stmt);</code>
Copier après la connexion

Object PHP - Style orienté :

<code class="php">// Create a prepared statement object
$stmt = $db->prepare('CALL multiples(?, ?)');

// Bind parameters
$stmt->bind_param('ii', $param1, $param2);

// Execute the statement
$stmt->execute();

// Fetch the first result set
$result1 = $stmt->get_result();
while ($row1 = $result1->fetch_assoc()) {
  echo "Result 1: " . $row1['id'] . "\n";
}

// Advance to the second result set
$stmt->next_result();

// Store and print results from the second result set
$result2 = $stmt->get_result();
while ($row2 = $result2->fetch_assoc()) {
  echo "Result 2: " . $row2['id'] . "\n";
}

// Close the statement
$stmt->close();</code>
Copier après la connexion

Remarques supplémentaires :

  • Après être passé à l'ensemble de résultats suivant, vous devez le récupérer et le traiter avant de passer à autre chose. au suivant.
  • Si votre procédure stockée génère des entiers qui sont renvoyés sous forme de chaînes vides, vérifiez les types de colonnes dans votre table de base de données.
  • Envisagez d'utiliser un style orienté objet avec MySQLi pour un rendu plus propre. et une structure de code plus encapsulée.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!