Использует ли `$ result = mysqli_query ($ conn, $ sql);` запрашивает все пользовательские данные вовремя?

Я нашел код фрагмента:

<?php

$sql = "SELECT * FROM users WHERE first='sof';";

$result = mysqli_query($conn, $sql);

$resultCheck = mysqli_num_rows($result);

var_dump($result);

if($resultCheck > 0){
    while($row = mysqli_fetch_assoc($result)){
        var_dump($row) ;
    }
}

У меня вопрос о верхнем коде:

запрашивает $result = mysqli_query($conn, $sql); все пользовательские данные?

или в $row = mysqli_fetch_assoc($result), затем запросить один за другим?

0
задан 13 August 2018 в 15:26

1 ответ

http://php.net/manual/en/mysqlinfo.concepts.buffering.php

Запросы используют буферный режим по умолчанию. Это означает, что результаты запроса немедленно переносятся с сервера MySQL на PHP и затем сохраняются в памяти процесса PHP. Это позволяет выполнять дополнительные операции, такие как подсчет количества строк и перемещение (поиск) текущего указателя результата. Он также позволяет выдавать дополнительные запросы на одно и то же соединение во время работы с результирующим набором. Недостатком буферизованного режима является то, что для больших наборов результатов может потребоваться довольно много памяти. Память будет сохранена до тех пор, пока все ссылки на набор результатов не будут отменены или набор результатов будет явно освобожден, что автоматически произойдет во время завершения запроса последним. Терминология «результат сохранения» также используется для буферизованного режима, так как весь результирующий набор сохраняется сразу.
3
ответ дан 15 August 2018 в 17:00

Другие вопросы по тегам:

Похожие вопросы: