Position actuelle: Accueil> Derniers articles> Une combinaison typique de next_result () et mysqli_multi_query ()

Une combinaison typique de next_result () et mysqli_multi_query ()

gitbox 2025-04-29

Dans PHP, la fonction MySQLI_MULTI_QUERY () peut exécuter plusieurs instructions de requête SQL, et la fonction Next_Result () peut nous aider à traiter ces résultats de requête un par un. Généralement, plusieurs requêtes peuvent être envoyées dans la même demande, et nous pouvons obtenir des données à partir de l'ensemble de résultats de chaque requête via des fonctions telles que MySQLI_Fetch_assoc () , MySqli_Fetch_Row () , etc. Cet article présentera comment utiliser la fonction Next_Result () et MySQLI_MULTI_QUERY () pour traiter plusieurs résultats de query.

1. Préparation: connexion à la base de données

Avant d'utiliser la fonction MySQLI_MULTI_QUERY () , nous devons d'abord établir une connexion de base de données MySQL. Voici un exemple de code pour se connecter à la base de données:

 <?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

// Créer une connexion
$conn = new mysqli($servername, $username, $password, $dbname);

// Vérifiez la connexion
if ($conn->connect_error) {
    die("Échec de la connexion: " . $conn->connect_error);
}
?>

2. Exécuter plusieurs instructions de requête

La fonction MySQLI_MULTI_QUERY () nous permet d'exécuter plusieurs instructions de requête SQL à la fois, séparées par des demi-colons ( ; ). Voici un exemple d'utilisation de mysqli_multi_query () pour effectuer plusieurs requêtes:

 <?php
$sql = "SELECT * FROM users; SELECT * FROM orders;";

if ($conn->multi_query($sql)) {
    do {
        // Obtenez les résultats de la requête
        if ($result = $conn->store_result()) {
            // Itérer sur l&#39;ensemble de résultats
            while ($row = $result->fetch_assoc()) {
                echo "utilisateurID: " . $row['user_id'] . " - utilisateur名: " . $row['username'] . "<br>";
            }
            $result->free();
        }
        // S&#39;il y a le jeu de résultats suivant,Appel next_result() Passez à l&#39;ensemble de résultats suivant
    } while ($conn->next_result());
} else {
    echo "La requête a échoué: " . $conn->error;
}
?>

Dans le code ci-dessus, mysqli_multi_query () exécute deux requêtes. La première requête tire tous les utilisateurs de la table des utilisateurs , et la deuxième requête obtient toutes les données de commande de la table des commandes . La boucle de DOWTH garantit que chaque ensemble de résultats de requête est traité.

3. Utilisez next_result () pour traiter plusieurs ensembles de résultats

La fonction mysqli_multi_query () renvoie plusieurs ensembles de résultats lorsque plusieurs requêtes sont exécutées. La fonction de la fonction Next_Result () est de passer au jeu de résultats suivant. Chaque fois que Next_Result () est appelé, il vérifiera s'il y a un prochain ensemble de résultats. Si c'est le cas, la fonction renvoie vrai , sinon faux .

Dans le code ci-dessus, nous utilisons une boucle à faire et next_result () pour nous assurer que tous les ensembles de résultats de requête peuvent être traversés jusqu'à ce qu'il n'y ait plus de résultats.

4. Gestion des erreurs

Si une erreur se produit lors de l'exécution de plusieurs requêtes, nous pouvons obtenir le message d'erreur via $ con-> erreur . Dans le code ci-dessus, nous avons simplement publié des informations d'erreur lorsque la requête échoue, et bien sûr, vous pouvez également effectuer une gestion des erreurs plus complexe en fonction de la situation réelle.

5. Fermez la connexion

Après avoir exécuté toutes les requêtes et traité tous les ensembles de résultats, n'oubliez pas de fermer la connexion de la base de données:

 <?php
$conn->close();
?>

6. Conclusion

Avec les fonctions mysqli_multi_query () et next_result () , PHP peut facilement gérer les ensembles de résultats de plusieurs requêtes SQL. Cette approche est très utile pour effectuer des requêtes par lots et des applications qui nécessitent plusieurs résultats de données. J'espère que cet article peut vous aider à comprendre comment utiliser ces deux fonctions pour implémenter le traitement des résultats multi-requins.


Instructions supplémentaires

Si vous avez besoin de plus d'aide, vous pouvez visiter notre documentation officielle: https://gitbox.net/docs/mysql pour plus d'informations.