为啥 PDO fetch() 只返回第一行? [复制]
Posted
技术标签:
【中文标题】为啥 PDO fetch() 只返回第一行? [复制]【英文标题】:Why does PDO fetch() return only the first row? [duplicate]为什么 PDO fetch() 只返回第一行? [复制] 【发布时间】:2019-07-22 21:50:24 【问题描述】:当我选择并打印它时,它只显示第一行,查询是一样的。为什么只返回一行?
php 代码:
$e = $db->query("SELECT `username`, `membership` FROM `users` WHERE `expire` != ''")->fetch();
print_r($e);
PHP 的结果:
Array ( [username] => ItzBruney05 [0] => ItzBruney05 [membership] => 300 [1] => 300 )
在 phpMyAdmin 中执行查询时的结果:
【问题讨论】:
因为->fetch()
只获取一行。如果您想要所有行,请执行->fetchAll()
。
快速浏览一下the documentation 就会回答这个问题。
欢迎来到 SO。当命令返回错误或未按您期望的方式运行时,最好阅读命令的文档。请在此处发布问题之前执行此操作。提示:许多命令的“另见”部分通常会列出可能执行您想要的操作的类似命令。如果网络文档包含用户 cmets,也请阅读它们。
【参考方案1】:
要使用 PDO 选择所有行,您需要使用 fetchAll()
而不是 fetch()
。
$e = $db->query("SELECT `username`, `membership` FROM `users` WHERE `expire` != ''")->fetchAll();
在 PDO 中,fetch()
返回“结果集中的下一行”。
fetchAll()
返回“一个包含所有结果集行的数组”。
【讨论】:
以上是关于为啥 PDO fetch() 只返回第一行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章