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.
PHP.mk документација
mysqli_result
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
class.mysqli-result.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + преведен приказ
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
class.mysqli-result.php
mysqli_result
Референца за `class.mysqli-result.php` со подобрена типографија и навигација.
mysqli_result класа
класата mysqli_driver
Вовед
Ја претставува групата на резултати добиена од прашање до базата на податоци.
Синопсис на класата
Својства
- type
-
Ги складира дали резултатот е бафериран или не-бафериран како int (
MYSQLI_STORE_RESULTorMYSQLI_USE_RESULT, односно).
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 | mysqli_result implements IteratorAggregate сега. Претходно, Траверзабилно беше имплементирано наместо тоа. |
Содржина
- mysqli_result::__construct — Конструира mysqli_result објект
- mysqli_result::$current_field — Добиј ја тековната позиција на полето на покажувачот на резултатот
- mysqli_result::data_seek — Го прилагодува покажувачот на резултатот на произволен ред во резултатот
- mysqli_result::fetch_all — Преземи ги сите редови од резултатот како асоцијативен, нумерички или и двата типа на низи
- mysqli_result::fetch_array — Преземи го следниот ред од множеството резултати како асоцијативен, нумерички или и двата типа на низи
- mysqli_result::fetch_assoc — Преземи го следниот ред од множеството резултати како асоцијативна низа
- mysqli_result::fetch_column — Преземи една колона од следниот ред од множеството резултати
- mysqli_result::fetch_field — Враќа следно поле во множеството резултати
- mysqli_result::fetch_field_direct — Преземи метаподатоци за едно поле
- 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::getIterator — Преземи надворешен итератор
- mysqli_result::$lengths — Враќа должини на колоните од тековниот ред во множеството резултати
- mysqli_result::$num_rows — Добиј го бројот на редови во множеството резултати
Белешки од корисници 4 белешки
tuxedobob ¶
пред 13 години
(PHP 5, PHP 7, PHP 8) ¶
пред 7 години
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,
Cem Kayali / cemkayali(a)eticaret.com.tr ¶
12 години пред
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;
}
?>
Marc17 ¶
пред 17 години
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;
}
}
?>