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