PHP mysqli_result
La clase PHP mysqli_result representa el set de resultados obtenido luego de correr una consulta.
class mysqli_result implements IteratorAggregate { /* Properties */ public readonly int $current_field; public readonly int $field_count; public readonly ?array $lengths; public readonly int|string $num_rows; public int $type; /* Methods */ public __construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT) public data_seek(int $offset): bool public fetch_all(int $mode = MYSQLI_NUM): array public fetch_array(int $mode = MYSQLI_BOTH): array|null|false public fetch_assoc(): array|null|false public fetch_column(int $column = 0): null|int|float|string|false public fetch_field_direct(int $index): object|false public fetch_field(): object|false public fetch_fields(): array public fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false public fetch_row(): array|null|false public field_seek(int $index): bool public free(): void public close(): void public free_result(): void public getIterator(): Iterator }
Podemos obtener objetos mysqli_result
de varias maneras tanto desde un objeto mysqli
como desde un objeto mysqli_stmt
.
Desde mysqli tenemos los siguientes metodos:
- mysqli reap_async_query
- mysqli store_result
- mysqli use_result
En tanto, en mysqli_stmt tenemos:
- mysqli_stmt get_result
- mysqli_stmt result_metadata
Por último podríamos utilizar su constructor
Antes de entrar a ver las propiedades y métodos, debemos recordar que antes de utilizar las propiedades o métodos ya habremos hecho una query(consulta) o prepare statement(sentencia preparada)
Propiedades
https://blastcoding.com/php-mysqli_result/#propiedadesEn las siguientes propiedades verá la variable $mysqli_result está en las sintaxis estará alojando un objeto mysqli_result
$current_field
https://blastcoding.com/php-mysqli_result/#current_fieldObtiene la posición del campo actual de un resultset pointer. necesitarás utilizar fetch_field para poder usar esta propiedad
Sintaxis / Sintax$mysqli_result->current_field;
$field_count
https://blastcoding.com/php-mysqli_result/#field_countCantidad de campos de un set resultados.
Sintaxis / Sintax$mysqli_result->field_count;
$lengths
https://blastcoding.com/php-mysqli_result/#lengthsDevuelve la longitud de las columnas de la fila acual del set de resultados en forma de array, puede devolver null
, false
en caso de error.
$mysqli_result->lengths;
$num_rows
https://blastcoding.com/php-mysqli_result/#num_rowsNúmero de filas devueltas en el resultado.
Sintaxis / Sintax$mysqli_result->num_rows;
$type
https://blastcoding.com/php-mysqli_result/#typeIndica si el resultado está almacenado en buffer o no(unbuffered) como un entero(int), estos valores están representados por constantes MYSQLI_STORE_RESULT y MYSQLI_USE_RESULT respectivamente.
Sintaxis / Sintax$mysqli_result->type;
Métodos
https://blastcoding.com/php-mysqli_result/#metodosEn las siguientes sintaxis utilizaremos la variable $result
que contendrá un objeto mysqli_result
, en este caso tenga en cuenta que para obtener un mysqli_result
lo habremos hecho de alguna de las maneras que vimos en el inicio o con el constructor.
__construct
https://blastcoding.com/php-mysqli_result/#__constructEl constructor de la clase mysqli_result
, se encarga de construir el objeto. El constructor puede utilizarse luego de utilizar el método real_query de mysqli
public mysqli_result::__construct(mysqli $mysqli, int $result_mode = MYSQLI_STORE_RESULT)Sintaxis / Sintax
$result = new mysqli_result($mysqli,$reslt_mode)
data_seek
https://blastcoding.com/php-mysqli_result/#data_seekAjusta hacia qué fila del resultado obtenido luego de correr una consulta apunta.
Por ejemplo vea la siguiente tabla, nuestra flecha es hacia donde estamos apuntando (indicaremos en nuestro parámetro offset a donde apuntar).
nombre | apellido | direccion | |
Marcelo | Kappa | Rotham 2312 | |
→ | Mariana | Suarez | Lomas 2782 |
Gerardo | Isil | Dime 1782 |
En este contexto apuntar a la fila donde se encuentra Mariana seria $result->data_seek(1)
ya que offset empieza desde 0 y termina en longitud -1
public mysqli_result::data_seek(int $offset): boolSintaxis / Sintax
$result->data_seek($offset);
Parámetro
$offset
– número de la fila, este número debe ser entre 0 y longitud de filas -1
Retorna
true
o false
dependiendo si tuvo exito o no
fetch_all
https://blastcoding.com/php-mysqli_result/#fetch_allDevuelve todas las filas del resultado como un array asociativo, numérico o ambos, dependiendo del modo que se ha pasado por parámetro.
Description / Descripciónpublic mysqli_result::fetch_all(int $mode = MYSQLI_NUM): arraySintaxis / Sintax
$result->fetch_all($mode);
Parametro
$mode
– mode puede ser una de las siguientes constantes MYSQLI_NUM(por defecto), MYSQLI_ASSOC y MYSQLI_BOTH.
Retorno
Este método retornará un array
, el cual dependerá del parámetro $mode
especificado.
fetch_array
https://blastcoding.com/php-mysqli_result/#fetch_arrayDevuelve el resultado de la fila siguiente como un array asociativo, numérico o ambos.
Description / Descripciónpublic mysqli_result::fetch_array(int $mode = MYSQLI_BOTH): array|null|falseSintaxis / Sintax
$result->fetch_array($mode);
Parametro
$mode
-mode puede ser una de las siguientes constantes MYSQLI_NUM, MYSQLI_ASSOC y MYSQLI_BOTH(por defecto).
Retorno
array con los valores de la fila, null
si no hay más filas en el set de resutados y false
en caso de haber un fallo.
fetch_assoc
https://blastcoding.com/php-mysqli_result/#fetch_assocExtrae o devuleve la proxima fila de un set de resultados como un array asociativo.
Description / Descripciónpublic mysqli_result::fetch_assoc(): array|null|falseSintaxis / Sintax
$result->fetch_assoc();
Retorno
Retorna un array asociativo, null en caso de que no tenga más filas y false en caso de fallo.
fetch_column
https://blastcoding.com/php-mysqli_result/#fetch_columnObtiene una columna de la próxima fila del set de resultados. Vea la siguiente tabla, suponga que nuestro puntero esta posicionado tal como vemos en la tabla
nombre | apellido | direccion | |
Marcelo | Kappa | Rotham 2312 | |
→ | Mariana | Suarez | Lomas 2782 |
Gerardo | Isil | Dime 1782 |
Si yo llamo este método para la columna 2, $result->fetch_column(2)
obtendré "Dime 1782"
public mysqli_result::fetch_column(int $column = 0): null|int|float|string|falseSintaxis / Sintax
$result->fetch_column($column);
Parametro
$column
– columna que se desea obtener, tener en cuenta que la numeración de las columnas empieza desde 0
Retorno
Este método tiene diferentes posibles retornos, ya que el valor puede ser cualquiera que tenga la tabla, false
en caso de no haber más filas.
fetch_field_direct
https://blastcoding.com/php-mysqli_result/#fetch_field_directObtiene la metadata de un solo campo en forma de objeto
Attribute | Description |
---|---|
name | The name of the column |
orgname | Original column name if an alias was specified |
table | The name of the table this field belongs to (if not calculated) |
orgtable | Original table name if an alias was specified |
def | The default value for this field, represented as a string |
max_length | The maximum width of the field for the result set. |
length | The width of the field, as specified in the table definition. |
charsetnr | The character set number for the field. |
flags | An integer representing the bit-flags for the field. |
type | The data type used for this field |
decimals | The number of decimals used (for numeric fields) |
public mysqli_result::fetch_field_direct(int $index): object|falseSintaxis / Sintax
$camp_info = $result->fetch_field_direct($index);
Como puede ver en sintaxis, $camp_info
albergará nuestro objeto. Con esta variable podremos obtener el valor de los distintos atributos vistos en la tabla de arriba, por ejemplo $camp_info->name
obtendrá el nombre de la columna, $camp_info->table
obtendrá el nombre de la tabla a la cual el campo pertenece y así sucesivamente.
Parámetro
$index
(fieldnr) – su valor varia entre 0 y la cantidad de campos -1
Retorno
Retorna un objeto
o false
si no hay información para el número de campo $index
fetch_field
https://blastcoding.com/php-mysqli_result/#fetch_fieldRetorna la información del próximo campo en el resultset
Attribute | Description |
---|---|
name | The name of the column |
orgname | Original column name if an alias was specified |
table | The name of the table this field belongs to (if not calculated) |
orgtable | Original table name if an alias was specified |
def | The default value for this field, represented as a string |
max_length | The maximum width of the field for the result set. |
length | The width of the field, as specified in the table definition. |
charsetnr | The character set number for the field. |
flags | An integer representing the bit-flags for the field. |
type | The data type used for this field |
decimals | The number of decimals used (for numeric fields) |
public mysqli_result::fetch_field(): object|falseSintaxis / Sintax
$camp_info = $result->fetch_field();
Retorno
Retorna un objeto
o false
si no hay información para el campo
fetch_fields
https://blastcoding.com/php-mysqli_result/#fetch_fieldsRetorna un array de objetos
con la información(meta data) de los campos. Los objetos tendrán los siguientes atributos o propiedades
Attribute | Description |
---|---|
name | The name of the column |
orgname | Original column name if an alias was specified |
table | The name of the table this field belongs to (if not calculated) |
orgtable | Original table name if an alias was specified |
def | The default value for this field, represented as a string |
max_length | The maximum width of the field for the result set. |
length | The width of the field, as specified in the table definition. |
charsetnr | The character set number for the field. |
flags | An integer representing the bit-flags for the field. |
type | The data type used for this field |
decimals | The number of decimals used (for numeric fields) |
public mysqli_result::fetch_fields(): arraySintaxis / Sintax
$result->fetch_fields();
Retorno
Array de objetos
fetch_object
https://blastcoding.com/php-mysqli_result/#fetch_objectExtrae la próxima fila del set de resultados y retorna en forma de Objeto
Description / Descripciónpublic mysqli_result::fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|falseSintaxis / Sintax
$objRow = $result->fetch_object($class,$constructor_args);
Parametro
$class
-nombre de la clase que se instanciará normalmente esta clase es una stdClass. La clase stdClass representa una objeto vacio.
$constructor_args
– en caso de que la clase necesite argumentos.
Retorno
Retorna un objeto
si pudo obtener los valores, null
en caso de que no haya más filas y false
en caso de que falle
fetch_row
https://blastcoding.com/php-mysqli_result/#fetch_rowExtrae la nueva fila del set de resultados devolviendo un array enumerado
Description / Descripciónpublic mysqli_result::fetch_row(): array|null|falseSintaxis / Sintax
$e_row = $result->fetch_row();
Retorno
retorna un array
sí todo ha ido bien, null
si no hay más filas y false
en caso de fallo
field_seek
https://blastcoding.com/php-mysqli_result/#field_seekCambia a que campo del resultado apunta basándonos en el valor de $index
public mysqli_result::field_seek(int $index): boolSintaxis / Sintax
$result->field_seek($index);
Parámetro
$index
– índice del campo, puede ser un valor entre 0 y cantidad de campos -1
Retorno
Retorna true
en caso de poder apuntar al campo especificado o False
dependiendo de si hubo un fallo.
free / close / free_result
https://blastcoding.com/php-mysqli_result/#freeLibera la memoria asociada con el resultado
Description / Descripciónpublic mysqli_result::free(): voidDescription / Descripción
public mysqli_result::close(): voidDescription / Descripción
public mysqli_result::free_result(): voidSintaxis / Sintax
$result->close();
getIterator
https://blastcoding.com/php-mysqli_result/#getIteratorDevuelve un Iterador externo
Description / Descripciónpublic mysqli_result::getIterator(): IteratorSintaxis / Sintax
$iterator = $result->getIterator();
Retorno
Retorna un iterador para lo que necesites hacer con el resultado.