首页 > 解决方案 > 复制/复制/克隆一个 mysql_result 对象

问题描述

我正在尝试将 mysql SELECT 查询保存到文件中,如下所示:

$result = mysqli_query($db,$sql);

$out = fopen('tmp/csv.csv', 'w');
while ($row = $result -> fetch_row()) {
fputcsv($out,$row);
    }
fclose($out);

保存后我需要在页面上发布如下:

while ($row = mysqli_fetch_assoc($result)) {
//embed html code
}

问题是每当我运行 $result->fetch_row() 时,都会丢失一条数据记录。我需要能够在我的代码中运行 fetch_object 至少 2 次并保留数据。我认为克隆会是一个很好的解决方案,但事实并非如此。

任何提示,除了在 sql 数据库上进行 2 次查询?

标签: phpmysqlobjectclone

解决方案


我相信另一种可行的解决方案是使用mysqli_data_seek.

mysqli_result 对象是一个指针,每次调用 fetch_row() 时都会在数据中移动,但您可以通过调用将指针移回开头

mysqli_data_seek($result, 0);

现在结果是“重置”,你可以再次使用它。

在此处了解更多信息:

https://www.php.net/manual/en/mysqli-result.data-seek.php


推荐阅读