mysqli_fetch_assoc - 它是如何工作的

时间:2018-01-01 22:36:50

标签: 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 . " " . $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

提前致谢! :)

3 个答案:

答案 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>";
}