(PHP 5, PHP 7, PHP 8)
mysqli_stmt::store_result -- mysqli_stmt_store_result — Stocke un ensemble de résultats dans un tampon interne
Style orienté objet
Style procédural
Cette fonction devrait être appelé pour les requêtes qui succèdent à
produire un jeu de résultats (e.g. SELECT, SHOW, DESCRIBE, EXPLAIN
)
seulement si le jeu de résultats complet doit être mit en tampon par PHP.
Chaque appel successif à mysqli_stmt_fetch() retournera
les données mise en tampon.
Note:
Il n'est pas nécessaire d'appeler mysqli_stmt_store_result() pour d'autres types de requête, mais si vous le faites, ce n'est pas grave et ne causera aucune perte notable de performance dans tous les cas. Vous pouvez détecter dans tous les cas si votre requête va produire un jeu de résultats en regardant si la fonction mysqli_stmt_result_metadata() retourne
false
.
statement
Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().
Cette fonction retourne true
en cas de succès ou false
si une erreur survient.
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.
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, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = $mysqli->prepare($query);
$stmt->execute();
/* Stocker le résultat dans un tampon interne */
$stmt->store_result();
printf("Nombre de lignes : %d.\n", $stmt->num_rows);
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, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);
/* Stocker le résultat dans un tampon interne */
mysqli_stmt_store_result($stmt);
printf("Nombre de lignes : %d.\n", mysqli_stmt_num_rows($stmt));
Les exemples ci-dessus vont afficher :
Nombre de lignes : 20.