我在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 . " " . $cat_title ."<br>";
}
那么,$row = mysql_fetch_assoc($result)
如何运作?
所以它从$results
一次循环一行并将该信息存储在$row
中,直到没有要返回的行为止?
while循环迭代中的mysqli_fetch_assoc($result)
是这个“数组(从$ result得到的一些行)”?
$row = mysqli_fetch_assoc($result)
与$row = array(all rows from $result that are gathered by mysqli_fetch_assoc)
相同?
这意味着$row
实际上是一个数组,每次循环时信息都没有被新的覆盖而是被添加了?
很抱歉,如果我对这些问题感到困惑:D
提前致谢! :)
答案 0 :(得分:1)
所以我找到了答案,就在这里。
使用mysqli_fetch_assoc函数时,PHP实际上是将数据库中的数据放入关联数组中。然后你循环,你可以从数组中提取数据。
由于没有递增来告诉循环何时停止,while循环会处理这个问题。所以你可以这样读它:
虽然'mysqli_fetch_assoc'有记录,但保持循环。当它用完时,停止。
你去书呆子!享受!
答案 1 :(得分:1)
最简单的解释是
运行mysqli_query()
时,要成功进行SELECT,SHOW,DESCRIBE或EXPLAIN查询,onDelete
将返回一个exports.userDeleted = functions.firestore
.document("users/{userId}")
.onDelete((snapshot) => {
const original = snapshot.data();
// original contains the deleted data
});
对象,其中包含来自数据库的数据。
mysqli_fetch_assoc()
-每次调用时从关联行数组中获取结果行(从mysqli_query()
对象开始一行),并将内部指针移至下一个。 mysqli_result
用于存储包含从mysqli_result
对象获取的单行数据的关联数组 '
您可以使用$row
mysqli_result
循环反复进行$row['column_name']
的调用。提取一行后,它将转到下一行,依此类推,直到到达对象的末尾并返回while
,这意味着mysqli_fetch_assoc()
和NULL
false
循环。答案 2 :(得分:1)
返回与获取的行相对应的关联数组,如果没有更多行,则返回NULL。 -from PHP manual on
mysqli_fetch_assoc()
无论何时调用get_result()
或mysqli_query()
,您都会收到一个mysqli_result
对象。该对象包含从MySQL数据库服务器获取的数据。来自SQL的数据按行返回给PHP。 mysqli_fetch_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>";
}