如何在不使用FETCHALL的情况下在MYSQL PDO中获取2次

2023-11-24

我有这个示例查询:

$STH = $DBH->query("SELECT id FROM table");

我想获取第一行,然后循环并显示所有行。所以我使用以下命令来获取第一行:

$STH->setFetchMode(PDO::FETCH_ASSOC);
$first_row = $STH->fetch();
$first_row = $first_row['id'];

我使用 while 循环再次显示所有行:

while ($list = $STH->fetch()) {      
$id = $list['id'];
echo $id;
}

现在 while 跳过第一行,我希望它被显示。有没有相当于mysql_data_seek将指针再次重置到第一行?我知道fetchall可以用,但是对内存不好而且浪费。我也可以运行查询并将其限制为 1,但不建议这样做,因为我有一个连接多个表的查询,速度会非常慢。还有其他解决办法吗?

Thanks


我认为您可以使用光标方向内容来选择结果...示例代码即将到来...我还没有尝试过这个,所以您可能需要玩一下。这也是基于这样的假设:PDO::FETCH_ORI_FIRST其作用类似于 data_seek 并将光标保留在第一个位置,而不是将其返回到之前的位置。

$stmt = $pdo->prepare('SELECT id FROM table', array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();

$first = $pdo->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_FIRST);
$first_row = $first['id'];

// other stuff

// first iteration we rewind to the first record;
$cursor = PDO::FETCH_ORI_FIRST;

while (false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC, $cursor))) {
   $id = $row['id'];
   // successive iterations we hit the "next" record
   $cursor = PDO::FETCH_ORI_NEXT; 
   echo $id;
}

我不认为你可以倒带一个语句...假设这些块被一堆中间逻辑 id 分开,只需在循环中执行即可。

$STH->setFetchMode(PDO::FETCH_COLUMN); // no need to pull an array
$count = 0;
while ($id = $STH->fetch()) {      
  if($count === 0) {
   $first_row = $id;
  }
  echo $id;
  $count++;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不使用FETCHALL的情况下在MYSQL PDO中获取2次 的相关文章

  • 在 php 和 mysql 中使用 utf8mb4

    我读过 mysql gt 5 5 3 完全支持每个可能的字符 如果您使用编码utf8mb4对于某个表 列http mathiasbynens be notes mysql utf8mb4 http mathiasbynens be note
  • php递归合并

    我需要以某种不同的方式合并一些数组 我使用 array merge recursive 然而 有一些事情我需要改变 但我不知道如何改变 这是来自 php net 的引用 但是 如果数组具有相同的数字键 则后面的值 不会覆盖原始值 但会追加
  • 删除、截断或删除以清理 MySQL 中的表

    我正在尝试清理表格 但没有摆脱表格的实际结构 我有一个id自动递增的列 我不需要保留ID号 但我确实需要它来保持其自动递增的特性 我发现了删除和截断 但我担心其中之一会完全删除整个表 从而使未来的插入命令变得无用 如何从表中删除所有记录以便
  • 如何在 PHP 中运行 shell 脚本?

    我正在尝试使用 PHP 触发 shell 脚本的运行 本质上 当用户在我们用 PHP 编写的网站上完成一个操作时 我们希望触发一个 shell 脚本 该脚本本身调用一个 Java 文件 提前致谢 See shell exec http ph
  • 'numpy.float64'对象没有属性'translate'在Python中将值插入Mysql

    import dataset db dataset connect table db 当我尝试向 Mysql 表中插入一些值时 发生了此错误 我插入表中的示例值 print Buy ticker price date OType OSize
  • 使用 DateTime 类计算日期差异时出错

    我正在尝试使用 DateTime 类 php gt 5 3 来计算 2 个日期的差异 手册中的示例简单明了 我尝试了该示例并且效果很好 但如果改变开始和结束日期 就会出现问题 this gt start date 2011 03 01 th
  • 根据类别 woocommerce 更改同一产品的默认变体值

    我正在研究一种根据其所属类别显示同一产品的默认变体值的方法 例如 我出售一张带有蓝色和红色选项的卡 当用户进入 一 类别时 我希望默认值为蓝色 如果他属于第二类 则该值将为红色 我发现了一个钩子woocommerce product def
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • Laravel 上传前如何压缩图像?

    我正在制作一个图片库网站 用户可以在其中上传任何图像 它们将显示在前端 我需要在不影响图像质量的情况下压缩图像 以减小图像大小 以便页面加载速度不会影响那么大 我使用以下代码来上传图像 rules array file gt require
  • 如何缓存 twitter api 结果?

    我想缓存 twitter api 结果的结果并将其显示给用户 缓存结果的最佳方法是什么 我正在考虑根据时间限制将结果写入文件 可以吗 还是应该使用任何其他方法 最重要的是 理想的缓存时间是多少 我想显示来自 twitter 的最新内容 但
  • 使用 IntlDateFormatter 转换非公历日期

    我应该如何使用将非公历日期转换为其他日历类型IntlDateFormatter 我要转换 1392 01 02 from persian to islamic日历 我尝试了以下代码 但它没有转换日历 formatter IntlDateFo
  • PHP:展平数组-最快的方法? [复制]

    这个问题在这里已经有答案了 是否有任何快速方法可以在不运行 foreach 循环的情况下展平数组并选择子键 在本例中为 键 和 值 或者 foreach 始终是最快的方法 Array 0 gt Array key gt string val
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • PHP多图像文件上传并存储到文件夹和数据库

    我正在建立一个网站 向夜间狂欢者展示大城市夜总会场所和活动的列表 我正在尝试构建一个后端页面 管理员可以在其中添加俱乐部并输入信息 例如机构名称 位置 相对价格等 当然还有俱乐部的一些图像 每个俱乐部必须至少有一张图像 即主图像 可以有额外
  • phpstorm xdebug 与 symfony2 项目

    我正在尝试使用 xdebug 和 phpstorm 调试 symfony2 应用程序 我的本地开发环境是Ubuntu 14 04 with apache2 Xdebug版本是2 2 7 我在另一个 php 不是 symfony2 项目上使用
  • 如何使用xquery查找节点并向其添加子节点?

    是否可以使用xpath xquery查询特定的xml节点 然后向其导入 添加子节点 示例 代码取自http codepad org gJ1Y2LjM http codepad org gJ1Y2LjM 这是在类似的问题中提出的 但不相同 1
  • 在 LINQ 中执行 FirstOrDefault 的替代方法

    我有一个成员资格表 用于记录用户是否是列表的成员 当用户的成员资格发生更新时 会写入新记录 并且先前的记录保持原样 从而可以维护其成员资格的历史记录 要获取用户的会员身份 需要选择他们最近的条目 下面是一些用户列表成员资格数据的示例 目的是
  • 表单提交后显示 $_FILES['image']

    提交表单后如何显示上传的图片 提交表单后 它将是一个预览页面 因此我不会在 MySQLet 中存储图像类型 BLOB 如何显示 FILES image
  • MySQL 正在将我的时间戳值转换为 0000-00-00

    我是 PHP 新手 目前仍在学习中 我认为我的注册表有问题 username password email全部成功插入MySQL registered and last seen不要 我以为我正在使用getTimestamp 错了 但它呼应
  • MYSQL 按喜欢/不喜欢和受欢迎程度排序

    我有评论表 其中包括喜欢和不喜欢的内容 现在我在正确的顺序上遇到了问题 实际上 我的系统在顶部显示了最多点赞的评论 我正在 youtube 上寻找类似系统的东西 这意味着 100like 100dislikes 的评论的顺序高于 1 1 我

随机推荐

  • PHP 中的 UTF-8 编码 xml

    我正在尝试使用 PHP 输出 XML 当我在 Firefox 中查看页面源时 一切似乎都很好 但是 页面本身无法正常显示 在 Firefox 中 当显示格式正确的 XML 时 它通常会在页面顶部显示以下内容 This XML file do
  • 有没有办法获取 Signalr hub 组中的连接数?

    这是我的问题 我想跟踪用户是否在线或离线并通知其他客户 我正在使用集线器并实现了 IConnected 和 IDisconnect 接口 我的想法是当集线器检测到连接或断开连接时向所有客户端发送通知 默认情况下 当用户刷新页面时 他将获得新
  • 如何向函数添加一次性点击事件?

    我想向函数添加一个单击事件侦听器 但只希望它发生一次 我怎么能这样做呢 如果可能的话 我也想远离 JQuery EDITED 由于我得到的答案完全满足了我的需求 我想我可以通过上下文使它更清楚一些 我正在编写一个绘制矩形的函数 首先单击按钮
  • 从构造函数创建委托

    使用反射 我尝试从无参数构造函数创建委托 如下所示 Delegate del GetMethodInfo gt System Activator CreateInstance type CreateDelegate delType stat
  • py2exe:减少库存档的大小

    我刚刚创建了第一个 py2exe 可执行文件 并注意到该 EXE 中创建了一个大小约为 1 4 MB 的 ZIP 文件 我的问题是 我可以减小它的大小吗 或者预计使用 py2exe 生成的 EXE 的典型大小约为 4 MB 这意味着所有文件
  • Rails 对象#空白?与 String#empty 相比?困惑

    Rails 文档有此信息用于Object blank 如果对象为 false 空或空白字符串 则该对象为空 例如 nil 和 为空白 但该方法的来源是这样的 File activesupport lib active support cor
  • 如何为编码视频设置标头元数据?

    我正在将一些图像编码为 mp4 容器内的 h264 视频 我本质上使用的是 ffmpeg 示例 muxing c 问题是我正在尝试在 mp4 容器中设置一些元数据 例如艺术家 标题等 我认为使用以下内容会起作用 但事实并非如此 AVDict
  • 第一项为“ID”的 CSV 文件在 Excel 中已损坏

    我正在尝试使用 java 将数据写入 csv 文件 但是当我尝试使用 excel 打开生成的文件时 出现错误 指出文件已损坏 在记事本中打开文件后 它看起来格式正确 所以我不确定问题是什么 我正在使用 FileWriter 类将数据输出到文
  • 获取目录大小的更有效方法

    我已经构建了一个递归函数来获取文件夹路径的目录大小 它可以工作 但是随着我必须搜索的目录数量不断增加 以及每个文件夹中的文件数量 这是一种非常缓慢 低效的方法 static string GetDirectorySize string pa
  • WPF:GroupBox动态高度

    我在 WPF 组框中的停靠面板内有一个文本框和数据网格
  • 错误:无法在 IntelliJ IDE 中找到或加载主类

    我是 Java 初学者 正在尝试使用 IntelliJ 运行我的代码 我刚刚使用 JDK 1 7 将其安装为 IDE 下面的代码甚至无法编译并不断给我错误 Error Could not find or load main class li
  • 如何内省 Cython C 扩展模块中定义的函数

    蟒蛇的inspectmodule 似乎无法检查 内置 函数的签名 其中包括 C 扩展模块中定义的函数 例如 Cython 定义的函数 有什么方法可以获取您在此类模块中定义的 Python 函数的签名 特别是在 Cython 中 我希望能够找
  • 将行从一个数据表复制到另一个数据表?

    如何将特定行从 DataTable 复制到 C 中的另一个 DataTable 将会有不止一排 foreach DataRow dr in dataTable1 Rows if some condition dataTable2 Rows
  • Safari 上 SVGforeignObject 中

    我在用着
  • Spark 驱动程序 pod 陷入等待:Kubernetes 中的 PodInitializing 状态

    我正在 kubernetes 集群上运行 Spark 2 3 作业 kubectl版本 Client Version version Info Major 1 Minor 9 GitVersion v1 9 3 GitCommit d283
  • 代数数据类型的计数

    我正在阅读 收听 Chris Taylor 关于代数数据类型的演示 http chris taylor github io blog 2013 02 10 the algebra of algebraic data types 还有一个关于
  • PyQt OpenGL:绘制简单场景

    最近我使用 PyOpenGL 绘制了简单的场景 例如三角形和多边形 代码非常简单 使用不同的 GL TRIANGLES 和 GL POLYGON 不会引起任何问题 之后我决定将 GUI 添加到我的应用程序并下载 pyqt4 所以现在我从那里
  • 如何使用 Exchange Web Services 2010 托管 API 获取文件夹大小?

    我正在尝试使用 EWS 2010 托管 API 来获取用户邮箱的总大小 我还没有找到一个网络服务方法来获取这些数据 所以我想我会尝试计算它 我在另一个网站上发现了一个看似适用的问题使用 EWS 2007 查找邮箱大小 但要么我不明白它要求我
  • 通过 PHP exec() 进行 Rsync,使用 SSH 无密码 ssh 登录

    如果我通过 php exec 运行命令 它不起作用 但如果我使用 bash 它运行得非常完美 知道问题可能是什么吗 我在想也许它正在作为 apache 执行 rsync 并且不允许 ssh 登录 exec rsync au var www
  • 如何在不使用FETCHALL的情况下在MYSQL PDO中获取2次

    我有这个示例查询 STH DBH gt query SELECT id FROM table 我想获取第一行 然后循环并显示所有行 所以我使用以下命令来获取第一行 STH gt setFetchMode PDO FETCH ASSOC fi