oujood.com

Comment utiliser la fonction more_results() pour traiter plusieurs ensembles de résultats en PHP

La fonction more_results() permet de vérifier si un ou plusieurs ensembles de résultats sont disponibles après un appel à mysqli_multi_query().

Définition et utilisationLa fonction PHP more_results() / mysqli_more_results()

PHP Version: 5+

La fonction PHP more_results() (ou mysqli_more_results() dans la syntaxe procédurale) permet de vérifier si un ou plusieurs ensembles de résultats sont disponibles à partir d'un appel précédent à la fonction mysqli_multi_query().

La fonction more_results() prend un seul paramètre, un objet ou une connexion mysqli. Elle retourne true si un ou plusieurs ensembles de résultats sont disponibles, false sinon.

Syntaxe orientée objet

$mysqli = new mysqli('localhost', 'root', '', 'my_db');

if ($mysqli->multi_query("SELECT * FROM users; SELECT * FROM posts;")) {
    while ($mysqli->more_results()) {
        $mysqli->next_result();

        if ($mysqli->store_result()) {
            // Traiter l'ensemble de résultats actuel
        } else {
            // Traiter l'erreur
        }
    }
}
    

Syntaxe procédurale

$mysqli = mysqli_connect('localhost', 'root', '', 'my_db');

if (mysqli_multi_query($mysqli, "SELECT * FROM users; SELECT * FROM posts;")) {
    do {
        if (mysqli_more_results($mysqli)) {
            mysqli_next_result($mysqli);

            if (mysqli_store_result($mysqli)) {
                // Traiter l'ensemble de résultats actuel
            } else {
                // Traiter l'erreur
            }
        }
    } while (mysqli_more_results($mysqli));
}
    

Valeurs possibles et paramètres

La fonction more_results() retourne les valeurs suivantes :

  • true si un ou plusieurs ensembles de résultats sont disponibles
  • false si aucun ensemble de résultats n'est disponible

Le paramètre de la fonction more_results() est un objet ou une connexion mysqli.

Exemples pratiques

Voici quelques exemples pratiques d'utilisation de la fonction more_results() :

Vérifier si un ensemble de résultats est disponible

Exemple :       Copier le code

\n<?php\n
$mysqli = new mysqli('localhost', 'root', '', 'my_db');

if ($mysqli->multi_query("SELECT * FROM users;")) {
    if ($mysqli->more_results()) {
        // Un ensemble de résultats est disponible
    } else {
        // Aucun ensemble de résultats n'est disponible
    }
}
    ?>
	

Traiter tous les ensembles de résultats

Exemple :       Copier le code

\n<?php\n
$mysqli = new mysqli('localhost', 'root', '', 'my_db');

if ($mysqli->multi_query("SELECT * FROM users; SELECT * FROM posts;")) {
    while ($mysqli->more_results()) {
        $mysqli->next_result();

        if ($mysqli->store_result()) {
            // Traiter l'ensemble de résultats actuel
        } else {
            // Traiter l'erreur
        }
    }
}
    ?>
	

Traiter un ensemble de résultats spécifique

Exemple :       Copier le code

\n<?php\n
$mysqli = new mysqli('localhost', 'root', '', 'my_db');

if ($mysqli->multi_query("SELECT * FROM users; SELECT * FROM posts;")) {
    // Traiter l'ensemble de résultats des utilisateurs

    $mysqli->next_result();

    if ($mysqli->store_result()) {
        // Traiter l'ensemble de résultats
    } else {
        // Traiter l'erreur
    }

    // Traiter l'ensemble de résultats des publications

    $mysqli->next_result();

    if ($mysqli->store_result()) {
        // Traiter l'ensemble de résultats
    } else {
        // Traiter l'erreur
    }
}
    ?>
	

Exemples de cas d'utilisation pratique de la fonction more_results()

Voici quelques cas d'utilisation de la fonction more_results(), avec des exemples dans les deux approches, orientée objet et procédurale :

Cas 1 : Vérification d'un ensemble de résultats

Ce cas d'utilisation consiste à vérifier si un ensemble de résultats est disponible après un appel à mysqli_multi_query().

Exemple orienté objet

Exemple :       Copier le code

<?php

$mysqli = new mysqli('localhost', 'root', '', 'my_db');

$mysqli->multi_query("SELECT * FROM users;");

if ($mysqli->more_results()) {
    // Un ensemble de résultats est disponible
} else {
    // Aucun ensemble de résultats n'est disponible
}
    ?>

Exemple procédural

Exemple :       Copier le code

<?php

$mysqli = mysqli_connect('localhost', 'root', '', 'my_db');

if (mysqli_multi_query($mysqli, "SELECT * FROM users;")) {
    if (mysqli_more_results($mysqli)) {
        // Un ensemble de résultats est disponible
    } else {
        // Aucun ensemble de résultats n'est disponible
    }
}
    ?>

Cas 2 : Traitement de tous les ensembles de résultats

Ce cas d'utilisation consiste à traiter tous les ensembles de résultats disponibles après un appel à mysqli_multi_query().

Exemple orienté objet

Exemple :       Copier le code

<?php

$mysqli = new mysqli('localhost', 'root', '', 'my_db');

$mysqli->multi_query("SELECT * FROM users; SELECT * FROM posts;");

while ($mysqli->more_results()) {
    $mysqli->next_result();

    if ($mysqli->store_result()) {
        // Traiter l'ensemble de résultats actuel
    } else {
        // Traiter l'erreur
    }
}
    ?>

Exemple procédural

Exemple :       Copier le code

<?php

$mysqli = mysqli_connect('localhost', 'root', '', 'my_db');

if (mysqli_multi_query($mysqli, "SELECT * FROM users; SELECT * FROM posts;")) {
    do {
        if (mysqli_more_results($mysqli)) {
            mysqli_next_result($mysqli);

            if (mysqli_store_result($mysqli)) {
                // Traiter l'ensemble de résultats actuel
            } else {
                // Traiter l'erreur
            }
        }
    } while (mysqli_more_results($mysqli));
}
    ?>

Cas 3 : Traitement d'un ensemble de résultats spécifique

Ce cas d'utilisation consiste à traiter un ensemble de résultats spécifique après un appel à mysqli_multi_query().

Exemple orienté objet

Exemple :       Copier le code

<?php

$mysqli = new mysqli('localhost', 'root', '', 'my_db');

$mysqli->multi_query("SELECT * FROM users; SELECT * FROM posts;");

// Traiter l'ensemble de résultats des utilisateurs

$mysqli->next_result();

if ($mysqli->store_result()) {
    // Traiter l'ensemble de résultats
} else {
    // Traiter l'erreur
}

// Traiter l'ensemble de résultats des publications

$mysqli->next_result();

if ($mysqli->store_result()) {
    // Traiter l'ensemble de résultats
} else {
    // Traiter l'erreur
}
    ?>

Exemple procédural

Exemple :       Copier le code

<?php

$mysqli = mysqli_connect('localhost', 'root', '', 'my_db');

if (mysqli_multi_query($mysqli, "SELECT * FROM users; SELECT * FROM posts;")) {
    // Traiter l'ensemble de résultats des utilisateurs

    mysqli_next_result($mysqli);

    if (mysqli_store_result($mysqli)) {
        // Traiter l'ensemble de résultats
    } else {
        // Traiter l'erreur
    }

    // Traiter l'ensemble de résultats des publications

    mysqli_next_result($mysqli);

    if (mysqli_store_result($mysqli)) {
        // Traiter l'ensemble de résultats
    } else {
        // Traiter l'erreur
    }
}
    ?>

Astuces et conseils

  • La fonction more_results() doit être utilisée après un appel à la fonction mysqli_multi_query().
  • Il est important de vérifier si un ensemble de résultats est disponible avant de l'utiliser.
  • La fonction mysqli_next_result() permet de passer à l'ensemble de résultats suivant.

MARKETPOWER-IA
Logiciel d'I.A.
Logiciel d'I.A. 100% Français pour lancer son business en ligne

La méthode secrète likes sans fin sur Facebook

Livre numérique court pour comprendre la méthode secrète permettant d'obtenir des likes sans fin sur Facebook.

GAGNER DE L'ARGENT
GRÂCE À FACEBOOK 
N'A JAMAIS ÉTÉ SI FACILE


Consulter


1tpe