php-使用mysqli_fetch_assoc(结果)时,结果会发生什么变化?

php-使用mysqli_fetch_assoc(结果)时,结果会发生什么变化?,php,mysql,Php,Mysql,当我有这样的事情时: $row = mysqli_fetch_assoc($result); $result现在是否少了一行? 如果我在所有的$result中循环mysqli\u fetch\u assoc,之后它会是空的吗 $结果是一个,无法在其中添加或删除数据。它会给你一个结果,并在内部进入下一个记录。这样的结果是不变的 提供了其他信息。$结果为,无法添加或删除其中的数据。它会给你一个结果,并在内部进入下一个记录。这样的结果是不变的 提供其他信息。$result是对SQL结果集的引用,其中

当我有这样的事情时:

$row = mysqli_fetch_assoc($result);
$result现在是否少了一行? 如果我在所有的
$result
中循环
mysqli\u fetch\u assoc
,之后它会是空的吗

$结果是一个,无法在其中添加或删除数据。它会给你一个结果,并在内部进入下一个记录。这样的结果是不变的

提供了其他信息。

$结果为,无法添加或删除其中的数据。它会给你一个结果,并在内部进入下一个记录。这样的结果是不变的


提供其他信息。

$result
是对SQL结果集的引用,其中包含响应查询返回的所有行。调用
mysqli\u fetch\u assoc
只需将结果集的内部指针进一步下移到行列表中,最终指向
NULL
(列表末尾)。这些行仍然在那里,您没有删除任何一行:您只是遍历了列表,您可以使用类似于
mysqli_data_seek
的方法再次遍历它们,以重置指向特定行的内部指针


要清除
$result
,您需要调用
mysqli\u free\u result
来“释放”结果集。

$result
是对SQL结果集的引用,其中包含响应查询返回的所有行。调用
mysqli\u fetch\u assoc
只需将结果集的内部指针进一步下移到行列表中,最终指向
NULL
(列表末尾)。这些行仍然在那里,您没有删除任何一行:您只是遍历了列表,您可以使用类似于
mysqli_data_seek
的方法再次遍历它们,以重置指向特定行的内部指针


要清除
$result
,您需要调用
mysqli_free_result
以“释放”结果集。

执行该行后,
$result
保留为资源指针,并可供其他函数使用,以进一步处理
$result
作为对数据库的引用

您可以取消设置它,或者
mysqli\u free\u result($result)


请参阅:

执行该行后,
$result
仍作为资源指针,并可由其他函数使用,以进一步处理,
$result
作为对数据库的引用

您可以取消设置它,或者
mysqli\u free\u result($result)


请参阅:

不太同意“$result仍将包含返回的所有行”。相反,我认为这是对SQL获取的结果集的引用。您是正确的。我的措辞很糟糕,这混淆了问题。我将编辑答案以合并您的注释。不太同意“$result仍将包含返回的所有行”。相反,我会说这是对SQL获取的结果集的引用。您是正确的。我的措辞很糟糕,这混淆了问题。我将编辑答案以合并您的注释。