mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::store_result -- mysqli_stmt_store_resultStocke un ensemble de résultats dans un tampon interne

Description

Style orienté objet

public mysqli_stmt::store_result(): bool

Style procédural

mysqli_stmt_store_result(mysqli_stmt $statement): bool

Cette fonction devrait être appelée pour les requêtes qui produisent un jeu de résultats (p. ex. SELECT, SHOW, DESCRIBE, EXPLAIN) seulement si le jeu de résultats complet doit être mis en tampon par PHP. Chaque appel successif à mysqli_stmt_fetch() retourne les données mises en tampon.

Note:

Il n'est pas nécessaire d'appeler mysqli_stmt_store_result() pour d'autres types de requête, mais si l'on le fait, ce n'est pas grave et ne causera aucune perte notable de performance dans tous les cas. Il est possible de détecter dans tous les cas si la requête va produire un jeu de résultats en regardant si la fonction mysqli_stmt_result_metadata() retourne false.

Liste de paramètres

statement

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

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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, 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.

Voir aussi