热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php–在PDO中获取只获得一个结果

参见英文答案PDO::FETCH_ASSOCnotfetchingeverything                                    1个我有这个代码$s

参见英文答案 > PDO::FETCH_ASSOC not fetching everything                                    1个
我有这个代码

$sql = new PDO('mysql:host=localhost;dbname=b','root','root');
$f = $sql->query('select * from user');
$sql->setFetchMode(PDO::FETCH_ASSOC);
while($row = $f->fetch()){
print_r($row);
}

输出是

Array
(
[id] => 1
[name] => turki
[mail] => ablaf
[pass] => 144
)
Array
(
[id] => 2
[name] => wrfwer
[mail] => fwerf
[pass] => werf
)

这就是我真正想要的.但是,如果我这样做

$sql = new PDO('mysql:host=localhost;dbname=b','root','root');
$f = $sql->query('select * from user');
$f->setFetchMode(PDO::FETCH_ASSOC);
print_r($f->fetch());
?>

输出是

Array
(
[id] => 1
[name] => turki
[mail] => ablaf
[pass] => 144
)

它有一个结果,但我在表中有两行;这是为什么?

解决方法:

应使用Fetch显示数据库结果的下一行

要获得所有行,您应该使用fetchAll();

> PDOStatement::fetch – 从结果集中获取下一行
> PDOStatement::fetchAll() – 返回包含所有结果集行的数组

将您的示例更改为:

$sql = new PDO('mysql:host=localhost;dbname=b','root','root');
$f = $sql->query('select * from user');
$f->setFetchMode(PDO::FETCH_ASSOC);
print_r($f->fetchAll());
?>

或者如果你想使用PDOStatement::fetch来

$sql = new PDO('mysql:host=localhost;dbname=b','root','root');
$f = $sql->query('select * from user');
while($row = $sth->fetch(PDO::FETCH_ASSOC))
{
print_r($row);
}
?>


推荐阅读
author-avatar
玉米的跟屁虫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有