(PHP 5 >= 5.3.0, PHP 7)
mysqli_stmt::get_result -- mysqli_stmt_get_result — Récupère un jeu de résultats depuis une requête préparée
Style orienté objet
Style procédural
Récupère un jeu de résultats depuis une requête préparée.
stmt
Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().
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.
Disponible uniquement avec mysqlnd.
Exemple #1 Style orienté objet
<?php
$mysqli = new mysqli("127.0.0.1", "user", "password", "world");
if($mysqli->connect_error)
{
die("$mysqli->connect_errno: $mysqli->connect_error");
}
$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";
$stmt = $mysqli->stmt_init();
if(!$stmt->prepare($query))
{
print "Échec lors de la préparation de la requête\n";
}
else
{
$stmt->bind_param("s", $continent);
$continent_array = array('Europe','Africa','Asia','North America');
foreach($continent_array as $continent)
{
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_NUM))
{
foreach ($row as $r)
{
print "$r ";
}
print "\n";
}
}
}
$stmt->close();
$mysqli->close();
?>
Exemple #2 Style procédural
<?php
$link = mysqli_connect("127.0.0.1", "user", "password", "world");
if (!$link)
{
$error = mysqli_connect_error();
$errno = mysqli_connect_errno();
print "$errno: $error\n";
exit();
}
$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";
$stmt = mysqli_stmt_init($link);
if(!mysqli_stmt_prepare($stmt, $query))
{
print "Échec lors de la préparation de la requête\n";
}
else
{
mysqli_stmt_bind_param($stmt, "s", $continent);
$continent_array = array('Europe','Africa','Asia','North America');
foreach($continent_array 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";
}
}
}
mysqli_stmt_close($stmt);
mysqli_close($link);
?>
Les exemples ci-dessus vont afficher :
Albania 3401200 Europe Algeria 31471000 Africa Afghanistan 22720000 Asia Anguilla 8000 North America