php - 复制/复制/克隆一个 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 次查询?
解决方案
我相信另一种可行的解决方案是使用mysqli_data_seek
.
mysqli_result 对象是一个指针,每次调用 fetch_row() 时都会在数据中移动,但您可以通过调用将指针移回开头
mysqli_data_seek($result, 0);
现在结果是“重置”,你可以再次使用它。
在此处了解更多信息:
推荐阅读
- attachment - 在 savon 客户端中解码文件流
- kotlin - 如何在 Kotlin 中做并行 flatMap?
- python - 无法从 Google Cloud Platform 访问公共网址
- javascript - React-loadable 仅从相对路径获取块
- node.js - 捕获特定窗口的屏幕截图 (macOS)
- python - 如何获取 Robotframework 测试套件中所有测试用例的名称
- python - 如何从文件中读取 Python 数组?
- php - 如何使用 f 写入函数将变量一个文件传递给另一个文件
- purescript - aff-ify 在错误和成功回调中具有不同结果类型的函数
- php - SoapClient XML 返回字符串与simpleXML?