Maison  >  Article  >  développement back-end  >  Comment récupérer plusieurs jeux de résultats à partir d'une procédure stockée en PHP/mysqli ?

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

DDD
DDDoriginal
2024-11-01 18:45:02827parcourir

How do you retrieve multiple result sets from a stored procedure in PHP/mysqli?

Récupération de plusieurs ensembles de résultats avec des procédures stockées en PHP/mysqli

En PHP/MySQLi, l'exécution d'une procédure stockée avec plusieurs ensembles de résultats nécessite une attention particulière manutention. Pour passer au deuxième ensemble de résultats après l'exécution de la procédure stockée, vous devez :

  1. Utiliser mysqli_stmt_execute : Exécuter la procédure stockée à l'aide de mysqli_stmt_execute.
  2. Récupérer le premier ensemble de résultats : Appeler mysqli_stmt_get_result pour obtenir le premier jeu de résultats et lire ses données à l'aide de fetch_assoc, fetch_array ou fetch_row.
  3. Passer au jeu de résultats suivant : Après avoir lu le premier jeu de résultats, appelez mysqli_stmt_next_result pour passer à le prochain résultat set.
  4. Récupérer le deuxième ensemble de résultats :Appelez à nouveau mysqli_stmt_get_result pour obtenir le deuxième ensemble de résultats et lire ses données.

Voici un exemple de code utilisant PHP/ MySQLi :

<code class="php">$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
mysqli_stmt_execute($stmt);

// Fetch the first result set
$result1 = mysqli_stmt_get_result($stmt);
while ($row = $result1->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

// Move to the second result set
mysqli_stmt_next_result($stmt);
$result2 = mysqli_stmt_get_result($stmt);
while ($row = $result2->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

mysqli_stmt_close($stmt);</code>

Ce code récupère et imprime avec succès les données des deux ensembles de résultats dans la procédure stockée spécifié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!

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