Php mysqli_fetch_assoc函数是如何工作的?
我有一个关于while循环中mysqli_fetch_assoc的问题Php mysqli_fetch_assoc函数是如何工作的?,php,mysqli,Php,Mysqli,我有一个关于while循环中mysqli_fetch_assoc的问题 $query = "SELECT * FROM category "; $result = mysqli_query($connection, $query); while($row = mysqli_fetch_assoc($result)) { $cat_id = $row['cat_id']; $cat_title = $row['cat_title']; echo $cat_id . "
$query = "SELECT * FROM category ";
$result = mysqli_query($connection, $query);
while($row = mysqli_fetch_assoc($result))
{
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];
echo $cat_id . " " . $cat_title ."<br>";
}
$query=“从类别中选择*”;
$result=mysqli\u查询($connection,$query);
while($row=mysqli\u fetch\u assoc($result))
{
$cat_id=$row['cat_id'];
$cat_title=$row['cat_title'];
echo$cat_id.“$cat_title.”
“;
}
那么,$row=mysqli\u fetch\u assoc($result)
是如何工作的呢
所以它从$results
一次循环一行,并将该信息存储在$row
中,直到没有要返回的行为止
这个mysqli\u fetch\u assoc($result)
在while循环迭代中是“数组(它从$result获得的一些行)”吗
$row=mysqli\u fetch\u assoc($result)
与$row=array(mysqli\u fetch\u assoc收集的$result中的所有行)
这意味着,
$row
实际上是一个数组,每次循环时,信息不会被new覆盖,而是被添加 使用mysqli\u fetch\u assoc()函数时,PHP将数据库中的数据放入关联数组中。然后可以从循环内部的数组中提取数据
由于没有增量来告诉循环何时停止,while循环会处理这个问题。所以你可以这样读:
当mysqli\u fetch\u assoc()
有更多记录时,保持循环。当它用完时,停下来。最简单的解释是
当您运行成功的选择、显示、描述或解释查询时,mysqli\u query()
将返回一个mysqli\u结果
对象,其中包含来自数据库的数据
- -每次调用时,将结果行(来自
对象的一行)提取为关联数组,并将内部指针移动到下一行mysqli_result
用于存储关联数组,该数组包含从$row
对象获取的单行数据mysqli\u结果
$row['column\u name']
循环反复调用while
。获取一行后,它将转到下一行,依此类推,直到到达对象的末尾并返回mysqli\u fetch\u assoc()
,这意味着NULL
和false
在
循环期间中断
get_result()
或mysqli_query()
都将收到一个mysqli_result
对象。此对象包含从MySQL数据库服务器获取的数据。SQL中的数据以行的形式返回给PHP。mysqli\u fetch\u assoc()
的目的是从该对象获取一行,并将内部指针移动到下一行。下次对同一对象调用此方法时,它将获取第二行并将指针移动到下一行。一旦指针移动到最后一行之外,此函数将继续返回NULL
每个返回数组中的值对应于MySQL结果集中的一行。这些值存储为关联数组。每个键都是SQL中的一个列名
while循环的目的是反复调用相同的函数,直到它返回NULL
请记住,使用while
循环并不是最好的方法。最好只使用foreach
$query = "SELECT * FROM category ";
$result = $connection->query($query);
foreach ($result as $row) {
$cat_id = $row['cat_id'];
$cat_title = $row['cat_title'];
echo $cat_id . " " . $cat_title ."<br>";
}
$query=“从类别中选择*”;
$result=$connection->query($query);
foreach($结果为$行){
$cat_id=$row['cat_id'];
$cat_title=$row['cat_title'];
echo$cat_id.“$cat_title.”
“;
}
基本正确。Pro提示:您可以免费阅读大多数PHP函数的文档。使用该手册比过帐到堆栈溢出更快、更可靠。说明:“返回一个关联数组,该数组对应于获取的行,如果没有更多行,则返回NULL。”您是否尝试读取文档并尝试在每个循环中打印$row的内容?不太可能,我有时会在这些文档中迷失方向,我只是喜欢从人那里得到答案,因为我是一个新手。无论如何,谢谢@杰布兰查德,这本应该作为答案公布的,伊姆霍。(哈哈)。当然只是开玩笑;-)“while循环在行之间移动。”这不是真的。while循环只是反复调用相同的函数mysqli\u fetch\u assoc()
通过每次调用下一行,在内部循环结果。