The mysqli_result class

(PHP 5, PHP 7)

Введение

Представляет результирующий набор, полученный из запроса в базу данных.

Список изменений

Список изменений
Версия Описание
5.4.0 Добавлена поддержка Iterator, так как mysqli_result теперь реализует Traversable.

Обзор классов

mysqli_result implements Traversable {
/* Свойства */
array $lengths;
/* Методы */
bool data_seek ( int $offset )
mixed fetch_all ([ int $resulttype = MYSQLI_NUM ] )
mixed fetch_array ([ int $resulttype = MYSQLI_BOTH ] )
array fetch_assoc ( void )
object fetch_field_direct ( int $fieldnr )
object fetch_field ( void )
array fetch_fields ( void )
object fetch_object ([ string $class_name = "stdClass" [, array $params ]] )
mixed fetch_row ( void )
bool field_seek ( int $fieldnr )
void free ( void )
}

Содержание

  • mysqli_result::$current_field — Получает смещение указателя по отношению к текущему полю
  • mysqli_result::data_seek — Перемещает указатель результата на выбранную строку
  • mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
  • mysqli_result::fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_result::fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_result::fetch_field_direct — Получение метаданных конкретного поля
  • mysqli_result::fetch_field — Возвращает следующее поле результирующего набора
  • mysqli_result::fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора
  • mysqli_result::fetch_object — Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_result::fetch_row — Получение строки результирующей таблицы в виде массива
  • mysqli_result::$field_count — Получение количества полей в результирующем наборе
  • mysqli_result::field_seek — Установить указатель поля на определенное смещение
  • mysqli_result::free — Освобождает память занятую результатами запроса
  • mysqli_result::$lengths — Возвращает длины полей текущей строки результирующего набора
  • mysqli_result::$num_rows — Получает число рядов в результирующей выборке

Коментарии

Extending the MySQLi_Result

<?php

class 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;
    }
}

?>
2009-01-08 04:47:20
http://php5.kiev.ua/manual/ru/class.mysqli-result.html
Автор:
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.
2012-08-21 00:35:02
http://php5.kiev.ua/manual/ru/class.mysqli-result.html
Автор:
An "mysqli_result" function where $field can be like table_name.field_name with alias or not.
<?php
function 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;
}
?>
2014-01-26 18:50:52
http://php5.kiev.ua/manual/ru/class.mysqli-result.html
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,
2018-09-28 17:20:32
http://php5.kiev.ua/manual/ru/class.mysqli-result.html

    Поддержать сайт на родительском проекте КГБ