我找到了一个片段代码:
<?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)
然后一一查询出来了吗?
http://php.net/manual/en/mysqlinfo.concepts.buffering.php
查询默认使用缓冲模式。这意味着查询结果立即从 MySQL 服务器传输到 PHP,然后保存在 PHP 进程的内存中。这允许执行其他操作,例如计算行数和移动(查找)当前结果指针。它还允许在处理结果集时在同一连接上发出进一步的查询。缓冲模式的缺点是较大的结果集可能需要相当多的内存。内存将一直被占用,直到对结果集的所有引用都被取消设置或结果集被显式释放,这将在最晚请求结束期间自动发生。术语“存储结果”也用于缓冲模式,因为整个结果集会立即存储。
谢谢你。我一直在寻找修复我的代码的方法。我能够将其适应我的旧 MySql 代码。我希望这也对其他人有帮助。
//$result = mysql_query("SELECT * FROM items ORDER BY name");
$sql = "SELECT * FROM items ORDER BY name";
$result = mysqli_query($conn, $sql);
$ix = 0;
//while ($row = mysql_fetch_array($result)) {
while ($row = mysqli_fetch_assoc($result)) {
$id = $row['id'];
//$history_result = mysql_query("SELECT cost, timestamp FROM history WHERE itemid = '$id' ORDER BY id DESC LIMIT 9");
$historyresult = "SELECT cost, timestamp FROM history WHERE itemid = '$id' ORDER BY id DESC LIMIT 9";
$history_result = mysqli_query($conn, $historyresult);
while ($history_row = mysqli_fetch_assoc($history_result)) {