La clase mysqli_result

(PHP 5, PHP 7, PHP 8)

Introducción

Representa el conjunto de resultados obtenidos a partir de una consulta en la base de datos.

Historial de cambios

Historial de cambios
Versión Descripción
5.4.0 Se añadió el soporte para Iterator, y mysqli_result ahora implementa Traversable.

Sinopsis de la Clase

class mysqli_result implements Traversable {
/* Propiedades */
/* Métodos */
data_seek(int $offset): bool
fetch_all(int $resulttype = MYSQLI_NUM): mixed
fetch_array(int $resulttype = MYSQLI_BOTH): mixed
fetch_object(string $class_name = "stdClass", array $params = ?): object
field_seek(int $fieldnr): bool
}

Tabla de contenidos

add a note

User Contributed Notes 4 notes

up
70
tuxedobob
12 years ago
Converting an old project from using the mysql extension to the mysqli extension, I found the most annoying change to be the lack of a corresponding mysql_result function in mysqli. While mysql_result is a generally terrible function, it was useful for fetching a single result field *value* from a result set (for example, if looking up a user's ID).

The behavior of mysql_result is approximated here, though you may want to name it something other than mysqli_result so as to avoid thinking it's an actual, built-in function.

<?php
function mysqli_result($res, $row, $field=0) {
    $res->data_seek($row);
    $datarow = $res->fetch_array();
    return $datarow[$field];
}
?>

Implementing it via the OO interface is left as an exercise to the reader.
up
18
Cem Kayali / cemkayali(a)eticaret.com.tr
6 years ago
Switching from Php5 to Php7, especially if you have worked on an ongoing, long term project, it is unfortunate that there is no mysqli_result function.So, this may be helpfull and you can call this function as you wish. I assume you do restricted search (searching for single row or few rows only).function mysqli_result($search, $row, $field){$i=0; while($results=mysqli_fetch_array($search)){if ($i==$row){$result=$results[$field];}$i++;}return $result;} Simply;$search=mysqli_query($connection, "select name from table_name where id='7'");$name=mysqli_result($search, 0, "id"); Best wishes,
up
14
Marc17
11 years ago
An "mysqli_result" function where $field can be like table_name.field_name with alias or not.<?phpfunction mysqli_result($result,$row,$field=0) {    if ($result===false) return false;    if ($row>=mysqli_num_rows($result)) return false;    if (is_string($field) && !(strpos($field,".")===false)) {        $t_field=explode(".",$field);        $field=-1;        $t_fields=mysqli_fetch_fields($result);        for ($id=0;$id<mysqli_num_fields($result);$id++) {            if ($t_fields[$id]->table==$t_field[0] && $t_fields[$id]->name==$t_field[1]) {                $field=$id;                break;            }        }        if ($field==-1) return false;    }    mysqli_data_seek($result,$row);    $line=mysqli_fetch_array($result);    return isset($line[$field])?$line[$field]:false;}?>
up
1
blar at blar dot de
16 years ago
Extending the MySQLi_Result<?phpclass Database_MySQLi extends MySQLi{    public function query($query)    {        $this->real_query($query);        return new Database_MySQLi_Result($this);    }}class Database_MySQLi_Result extends MySQLi_Result{    public function fetch()    {        return $this->fetch_assoc();    }    public function fetchAll()    {        $rows = array();        while($row = $this->fetch())        {            $rows[] = $row;        }        return $rows;    }}?>
To Top