mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::store_result -- mysqli_stmt_store_resultAlmacena un conjunto de resultados en un búfer interno

Descripción

Estilo orientado a objetos

public mysqli_stmt::store_result(): bool

Estilo por procedimientos

mysqli_stmt_store_result(mysqli_stmt $statement): bool

Esta función debería ser llamada para consultas que produzcan un conjunto de resultados (por ejemplo, SELECT, SHOW, DESCRIBE, EXPLAIN) solo si el conjunto de resultados completo debe ser almacenado en búfer por PHP. Cada llamada sucesiva a mysqli_stmt_fetch() devolverá los datos almacenados en búfer.

Nota:

No es necesario llamar a mysqli_stmt_store_result() para otros tipos de consultas, pero si se hace, no hay problema y no causará ninguna pérdida notable de rendimiento en ningún caso. Puede detectarse en todos los casos si la consulta va a producir un conjunto de resultados observando si la función mysqli_stmt_result_metadata() devuelve false.

Parámetros

stmt

Sólo estilo por procediminetos: Un identificador de declaraciones devuelto por mysqli_stmt_init().

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Errores/Excepciones

If mysqli error reporting is enabled (MYSQLI_REPORT_ERROR) and the requested operation fails, a warning is generated. If, in addition, the mode is set to MYSQLI_REPORT_STRICT, a mysqli_sql_exception is thrown instead.

Ejemplos

Ejemplo #1 Estilo orientado a objetos

<?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();

/* Almacenar el resultado en un búfer interno */
$stmt->store_result();

printf("Número de filas: %d.\n", $stmt->num_rows);

Ejemplo #2 Estilo por procedimientos

<?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);

/* Almacenar el resultado en un búfer interno */
mysqli_stmt_store_result($stmt);

printf("Número de filas: %d.\n", mysqli_stmt_num_rows($stmt));

El resultado de los ejemplos sería:

Número de filas: 20.

Ver también