mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_stmt::get_result -- mysqli_stmt_get_resultRécupère un jeu de résultats depuis une requête préparée en tant qu'objet mysqli_result

Description

Style orienté objet

publicmysqli_stmt::get_result(): mysqli_result|false

Style procédural

mysqli_stmt_get_result(mysqli_stmt$statement): mysqli_result|false

Récupère un jeu de résultats d'une déclaration préparée sous la forme d'un objet mysqli_result. Les données seront récupérées depuis le serveur MySQL vers PHP. Cette méthode ne doit être appelée que pour les requêtes qui produisent un ensemble de résultats.

Note:

Disponible uniquement avec mysqlnd.

Note:

Cette fonction ne peut pas être utilisée conjointement avec la mysqli_stmt_store_result(). Ces deux fonctions récupèrent le jeu de résultats complet du serveur MySQL.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un jeu de résultats pour les requêtes SELECT réussies, ou false pour d'autres requêtes DML ou en cas d'échec. La fonction mysqli_errno() peut être utilisé pour distinguer entre ces deux types d'erreurs. Retourne false en cas d'échec. Pour des requêtes réussites qui produisent un jeu de résultat tel que SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_stmt_get_result() retournera un objet mysqli_result. Pour les autres types de requêtes ayant réussi, mysqli_stmt_get_result() retournera false. La fonction mysqli_stmt_errno() peut être utilisé pour distinguer entre les deux raisons pour false ; à cause d'un bogue, antérieur à PHP 7.4.13, mysqli_errno() devait être utilisé pour déterminer ceci.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Style orienté objet

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $continent);

$continentList = array('Europe', 'Africa', 'Asia', 'North America');

foreach (
$continentList as $continent) {
$stmt->execute();
$result = $stmt->get_result();
while (
$row = $result->fetch_array(MYSQLI_NUM)) {
foreach (
$row as $r) {
print
"$r ";
}
print
"\n";
}
}
?>

Exemple #2 Style procédural

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = mysqli_prepare($link, $query);
mysqli_stmt_bind_param($stmt, "s", $continent);

$continentList= array('Europe', 'Africa', 'Asia', 'North America');

foreach (
$continentList as $continent) {
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
while (
$row = mysqli_fetch_array($result, MYSQLI_NUM)) {
foreach (
$row as $r) {
print
"$r ";
}
print
"\n";
}
}
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Albania 3401200 Europe Algeria 31471000 Africa Afghanistan 22720000 Asia Anguilla 8000 North America

Voir aussi

To Top