Dans PHP, next_result () est une fonction utilisée pour traiter plusieurs résultats de requête dans MySQL. Il appartient à une méthode dans l'extension MySQLI . Cette méthode est principalement utilisée lorsque vous exécutez plusieurs requêtes SQL, qui peuvent facilement ignorer l'ensemble de résultats actuel et continuer à traiter l'ensemble de résultats de requête suivante. Il est très utile lors de l'exécution de plusieurs requêtes de sélection ou de procédures stockées.
La fonction Next_Result () vous permet de traiter l'ensemble de résultats de chaque requête à leur tour après avoir appelé mysqli_query () ou mysqli_multi_query () pour exécuter plusieurs requêtes SQL. Chaque fois que Next_Result () est appelé, il sautera au résultat de la question suivante jusqu'à ce que tous les résultats soient traités.
bool mysqli_next_result(mysqli $link);
Lien : objet de connexion MySQLI , indiquant la connexion de la base de données que vous avez établie.
Renvoie True lorsqu'il est réussi, indiquant que le commutateur vers le jeu de résultats suivant a été passé avec succès à l'ensemble de résultats suivant.
Renvoie False en panne, généralement parce qu'il n'y a plus de jeux de résultats à gérer.
Next_result () est le plus souvent utilisé dans les cas suivants:
Exécuter plusieurs requêtes de sélection : lorsque vous exécutez plusieurs requêtes à la fois et que chaque requête a un résultat, vous devez vous assurer que les résultats de chaque requête sont obtenus dans l'ordre.
Exécuter les procédures stockées : plusieurs ensembles de résultats peuvent être renvoyés dans les procédures stockées. L'utilisation de next_result () peut vous aider à traiter chaque résultat de résultat un par un.
Voici un exemple montrant comment utiliser next_result () pour gérer plusieurs résultats de requête:
<?php
// Connectez-vous à la base de données
$mysqli = new mysqli("localhost", "user", "password", "database");
// Vérifiez si la connexion réussit
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
// Multiple SQL Requête
$sql = "SELECT * FROM users; SELECT * FROM orders;";
// 执行多个Requête
if ($mysqli->multi_query($sql)) {
// 处理第一个Requête的结果集
do {
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo "utilisateurID: " . $row['id'] . " - utilisateur名: " . $row['name'] . "<br>";
}
$result->free();
}
// 继续到下一个Requête结果集
} while ($mysqli->next_result());
} else {
echo "Requête错误: " . $mysqli->error;
}
// Fermer la connexion
$mysqli->close();
?>
Connectez-vous à la base de données : utilisez la nouvelle méthode mysqli () pour vous connecter à la base de données.
Exécutez plusieurs requêtes : exécutez des instructions contenant plusieurs requêtes SQL via Multi_Query () . Dans cet exemple, nous interrogeons les deux tableaux d' utilisateurs et de commandes .
Résultats de la requête du processus : Utilisez Store_Result () pour obtenir l'ensemble de résultats de la requête actuelle et publiez la ligne de données par ligne via fetch_assoc () . Une fois chaque ensemble de résultats traité, appelez Next_Result () pour passer à l'ensemble de résultats de la question suivante.
Connexion de fermeture : utilisez la méthode Close () pour fermer la connexion de la base de données.
Pourquoi next_result () doit-il être utilisé dans mysqli_multi_query () ?
Parce que mysqli_multi_query () prend en charge l'exécution de plusieurs requêtes à la fois, tandis que next_result () est utilisé pour obtenir l'ensemble de résultats de chaque requête une par une après que plusieurs requêtes ont été exécutées. Sans multi_query () , next_result () ne fonctionnera pas correctement.
Comment gérer les requêtes sans ensembles de résultats?
Next_Result () continuera de sauter les requêtes sans résultats. Par exemple, si votre instruction de requête est une instruction de mise à jour ou de suppression et ne renvoie pas le jeu de résultats, next_result () sautera la requête jusqu'à la prochaine requête avec un résultat.
Comment utiliser next_result () lors de l'exécution de procédures stockées?
Il peut y avoir plusieurs ensembles de résultats dans les procédures stockées, et next_result () peut aider à obtenir ces résultats un par un. Par exemple, vous pouvez exécuter plusieurs requêtes dans une procédure stockée et obtenir les résultats de chaque requête via next_result () .
Next_Result () est un outil puissant qui aide les développeurs à gérer efficacement les ensembles de résultats multi-requins. Il est particulièrement utile lors de l'exécution de plusieurs requêtes SQL à l'aide de mysqli_multi_query () , en évitant la commutation manuelle des ensembles de résultats, la simplification du code et l'augmentation de l'efficacité. Lorsque vous rencontrez des procédures stockées ou des requêtes multiples pendant le développement, la compréhension et l'utilisation de next_result () amélioreront considérablement votre efficacité de développement.
J'espère que cet article vous aide! Si vous avez d'autres questions ou si vous avez besoin de plus d'aide, n'hésitez pas à poser.