mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::store_result -- mysqli_stmt_store_resultTransfiere un conjunto de resultados desde una sentencia preparada

Descripción

Estilo orientado a objetos

mysqli_stmt::store_result(): bool

Estilo por procedimientos

mysqli_stmt_store_result(mysqli_stmt $stmt): bool

Se debe llamar a mysqli_stmt_store_result() para cada consulta que produzca con éxito un conjunto de resultados (SELECT, SHOW, DESCRIBE, EXPLAIN), y únicamente si se quiere almacenar en buffer el conjunto de resultados completo en el cliente, por lo que las llamadas subsuguientes a mysqli_stmt_fetch() devolverán datos almacenados en buffer.

Nota:

No es necesario llamar a mysqli_stmt_store_result() para otras consultas, pero si se hace, no perjudicará al rendimiento en ningún caso. Se puede detectar si la consulta produjo un conjunto de resultados comprobando si mysqli_stmt_result_metadata() devolvió NULL.

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.

Ejemplos

Ejemplo #1 Estilo orientado a objetos

<?php
/* Abrir una conexión */
$mysqli = new mysqli("localhost", "mi_usuario", "mi_contraseña", "world");

/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

$consulta = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if (
$sentencia = $mysqli->prepare($consulta)) {

/* ejecutar la consulta */
$sentencia->execute();

/* almacenar el resultado */
$sentencia->store_result();

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

/* liberar el resultado */
$sentencia->free_result();

/* cerrar la sentencia */
$sentencia->close();
}

/* cerrar la conexión */
$mysqli->close();
?>

Ejemplo #2 Estilo por procedimientos

<?php
/* Open a connection */
/* Abrir una conexión */
$enlace = mysqli_connect("localhost", "mi_usuario", "mi_contraseña", "world");

/* comprobar la conexión */
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}

$consulta = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if (
$sentencia = mysqli_prepare($enlace, $consulta)) {

/* ejecutar la consulta */
mysqli_stmt_execute($sentencia);

/* almacenar el resultado */
mysqli_stmt_store_result($sentencia);

printf("Number of rows: %d.\n", mysqli_stmt_num_rows($sentencia));

/* liberar el resultado */
mysqli_stmt_free_result($sentencia);

/* cerrar la sentencia */
mysqli_stmt_close($sentencia);
}

/* cerrar la conexión */
mysqli_close($enlace);
?>

El resultado de los ejemplos sería:

Número de filas: 20.

Ver también