gpt4 book ai didi

php - PDO fetch 方法改变了 pdo 对象本身

转载 作者:行者123 更新时间:2023-12-01 00:50:17 28 4
gpt4 key购买 nike

从 mysql 切换到 PDO 我注意到 fetch 方法改变了 PDO 对象本身!例如:

$res=$ps->fetchAll();
echo($res[0]['Mail']); //it'ok

//now i re-call the fetch method
$res=$ps->fetchAll();
echo($res[0]['Mail']); //no result!

为什么会这样?在 mysql 中我从未见过这个东西

最佳答案

该对象仍然包含您的数据,但它维护一个指向当前记录的内部指针。每次从结果集中获取记录时,指针都会前进到下一行。

fetchAll() 的情况下,指针已前进到结果集的末尾,因此后续的 fetchAll() 调用不会返回任何结果。

如果您需要再次调用fetchAll(),您可以将指针倒回到结果集的开头。这可以在缓冲查询上完成:

$ps->setAttribute(PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 1);
$ps->rewind();
$ps->fetchAll();

关于php - PDO fetch 方法改变了 pdo 对象本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16623692/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com