php中pdo结果集,php – 如何存储PDO结果集

我已经学习了2个月的

PHP作为我的第一个脚本语言.对于我的大多数问题,我可以在网上轻松找到答案,但有一些关于PDO的东西,我似乎无法理解.

为了从数据库中检索数据,我实例化PDO类的新对象并在其上调用PDO :: query()方法.这将返回一个PDOStatement对象,该对象携带SQL查询的结果集.这是问题的起点.我似乎无法理解结果集中数据的存储方式和位置.

在PHP手册中,我学会了通过使用foreach循环迭代PDOStatement对象来显示返回的行.但是,PHP手册清楚地指出,如果将对象转换为数组,则结果是一个数组,其元素是对象的属性. PDOStatement只有一个属性 – $queryString – 包含已发出的查询字符串.那么……查询结果存储在哪里?为什么我可以通过带有foreach循环的数组到达它们,但不是在它之外?

// Instantiate new PDO object to establish a new connection with MySQL database

$db = new PDO('mysql:dbhost=localhost;dbname=world', 'root', 'secret');

// Execute SQL query - Returns a PDOStatement object

$result = $db->query("SELECT Name, Continent, Population FROM Country");

// Result set can be accessed with a foreach loop iterating over the PDOStatement object

foreach ($result as $row) {

echo "$row[Name] - $row[Continent] - $row[Population]
";

}

// Outside the foreach loop, $result cannot be accessed this way.

// This produces 'Cannot use object of type PDOStatement as array'

echo $result[0]['Name'];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值