PHP.mk документација

mysqli_result::fetch_all

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

mysqli-result.fetch-all.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека mysqli-result.fetch-all.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
mysqli_result::fetch_all

Референца за `mysqli-result.fetch-all.php` со подобрена типографија и навигација.

mysqli-result.fetch-all.php

mysqli_result::fetch_all

mysqli_fetch_all

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_result::fetch_all -- mysqli_fetch_allЗеми ги сите редови од резултатот како асоцијативен низ, нумерички низ или и двете

= NULL

Напиши целосна ознака на елемент

public mysqli_result::fetch_all(int $mode = MYSQLI_NUM): array

Процедурален стил

mysqli_fetch_all(mysqli_result $result, int $mode = MYSQLI_NUM): array

Враќа дводимензионален низ од сите редови од резултатот како асоцијативен низ, нумерички низ или и двете.

Забелешка:

Пред PHP 8.1.0, достапно само со mysqlnd.

Параметри

result

објектот како свој прв аргумент. mysqli_result Само процедурален стил: А mysqli_query(), mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result().

mode

Овој опционален параметар е константа што укажува каков тип на низ треба да се произведе од податоците од тековниот ред. Можните вредности за овој параметар се константите MYSQLI_ASSOC, MYSQLI_NUM, или MYSQLI_BOTH.

Вратени вредности

Враќа низ од асоцијативни или нумерички низови што ги содржат редовите од резултатот.

Дневник на промени

Верзија = NULL
8.1.0 Стардната вредност сега е MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Претходно, беше MYSQLI_REPORT_OFF.

Примери

Пример #1 mysqli_result::fetch_all() example

Напиши целосна ознака на елемент

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

$rows = $result->fetch_all(MYSQLI_ASSOC);
foreach (
$rows as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Процедурален стил

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
foreach (
$rows as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Горните примери ќе дадат излез:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Види Исто така

  • mysqli_fetch_array() - Преземи го следниот ред од множеството резултати како асоцијативна, нумеричка низа, или и двете
  • mysqli_fetch_column() - Преземи еден столб од следниот ред од множеството резултати
  • mysqli_query() - Извршува прашање на базата на податоци

Белешки од корисници 5 белешки

jcastro at eftec dot cl
пред 11 години
I tested using "fetch all" versus "while / fetch array" and :

fetch-all uses less memory (but not for so much).

In my case (test1 and test2): 147008,262848 bytes (fetch-all) versus 147112,262888 bytes (fetch-array & while.

So, about the memory, in both cases are the same.

However, about the performance
My test takes :350ms (worst case) using fetch-all, while it takes 464ms (worst case) using fetch-array, or about 35% worst using fetch array and a while cycle.

So, using fetch-all, for a normal code that returns a moderate amount of information is :
a) cleaner (a single line of code)
b) uses less memory (about 0.01% less)
c) faster.

php 5.6 32bits, windows 8.1 64bits
darek334 на gazeta точка pl
пред 2 години
be careful fetch_all(MYSQLI_ASSOC ) returns an array in the form
<?php
array(0 => array(...row...), 1 => array(...row...) .... ), even if is one row...
?>
not compared to fetch_assoc() which returns one array of the result in form:
<?php
array(...row...)
?>
mail2magvay at rambler dot ru
пред 6 години
By the way, this case pretty work's too:

$services = $mysqli->query("SELECT * FROM table1");

if($services && $services->num_rows>0){
    $services->fetch_all(MYSQLI_ASSOC);
}

foreach($services as $service){
    echo $service; //work properly, cause it implements Iterator  
}

That's mean in this case $services is a valid array (or empty array)
m dot amiot at otak-arts dot com
пред 14 години
If you really need this function, you can just extend the mysqli_result class with a function like this one.

<?php
        public function fetch_all($resulttype = MYSQLI_NUM)
        {
            if (method_exists('mysqli_result', 'fetch_all')) # Compatibility layer with PHP < 5.3
                $res = parent::fetch_all($resulttype);
            else
                for ($res = array(); $tmp = $this->fetch_array($resulttype);) $res[] = $tmp;

            return $res;
        }
?>
davidm на marketo точка com
пред 15 години
Return value changed in 5.3.3 - between 5.3.0 and 5.3.2 (incl.) when the result set was empty NULL was returned. 5.3.3+ returns an empty array.
Also, mysqli_fetch_all works only for buffered result sets, which are the default for mysqli_query. MYSQLI_USE_RESULT will be supported in 5.3.4+
However, it makes little sense to use it this way, materialising unbuffered sets. In this case choose STORE_RESULT, and fetch_all won't copy the data, but reference it, as it is stored already in mysqlnd.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.