$ result = mysqli_query($ conn,$ sql);是否按时查询所有用户数据?

时间:2018-08-13 12:26:48

标签: php mysqli

我找到一个代码段:

<?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)中然后一个一个地查询出来?

1 个答案:

答案 0 :(得分:3)

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

  

默认情况下,查询使用的是缓冲模式。这意味着查询结果会立即从MySQL服务器传输到PHP,然后保存在PHP进程的内存中。这允许进行其他操作,例如计算行数以及移动(查找)当前结果指针。它还允许在处理结果集时在同一连接上发出更多查询。缓冲模式的缺点是较大的结果集可能需要大量内存。内存将一直被占用,直到未对结果集的所有引用都被设置或结果集被显式释放为止,这将在请求结束时自动发生。术语“存储结果”也用于缓冲模式,因为整个结果集可一次存储。