我无法从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] }
将结果保存到数组,然后将该数组循环两次。
$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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。