开发者社区> 问答> 正文

在PDO结果中重置数组指针?mysql

我无法从MySQL SELECT方法转换为PDO方法。我想遍历提取的数组两次,两次都从零行开始。在MySQL中,我将使用:

mysql_data_seek($result,0); 使用PDO方法,我不确定如何完成同一件事。下面的代码是我试图做到这一点。第一个while循环工作正常,但是第二个while循环不返回任何内容。

$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC'); $stmt->setFetchMode(PDO::FETCH_ASSOC); $stmt->execute();

while($row = $stmt->fetch()) { //do something starting with row[0] } while($row = $stmt->fetch()) { //do something else starting with row[0] }

展开
收起
保持可爱mmm 2020-05-13 14:38:55 312 0
1 条回答
写回答
取消 提交回答
  • 将结果保存到数组,然后将该数组循环两次。

    $pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC'); $stmt->setFetchMode(PDO::FETCH_ASSOC); $stmt->execute();

    $rows = $stmt->fetchAll();

    foreach ($rows as $r) { // first run }

    foreach ($rows as $r) { // seconds run }来源:stack overflow

    2020-05-13 14:39:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像