Détermine si une variable est de type chaîne de caractères
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().
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.
$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 } } }
$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)); }
La fonction more_results() retourne les valeurs suivantes :
Le paramètre de la fonction more_results() est un objet ou une connexion mysqli.
Voici quelques exemples pratiques d'utilisation de la fonction more_results() :
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 } } ?>
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 } } } ?>
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 } } ?>
Voici quelques cas d'utilisation de la fonction more_results(), avec des exemples dans les deux approches, orientée objet et procédurale :
Ce cas d'utilisation consiste à vérifier si un ensemble de résultats est disponible après un appel à mysqli_multi_query().
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 : 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 } } ?>
Ce cas d'utilisation consiste à traiter tous les ensembles de résultats disponibles après un appel à mysqli_multi_query().
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 : 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)); } ?>
Ce cas d'utilisation consiste à traiter un ensemble de résultats spécifique après un appel à mysqli_multi_query().
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 : 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 } } ?>