我正在使用PDO编写自己的ORM.我的问题是你是否可以强制PDOStatement::fetchAll()方法返回stdClass的对象数组?例如:
$result = $q->fetch_all(/* some magic here */);
print_r($result);
Run Code Online (Sandbox Code Playgroud)
应该打印像:
Array
(
[0] => stdClass Object
(
[NAME] => pear
[COLOUR] => green
)
[1] => stdClass Object
(
[NAME] => watermelon
[COLOUR] => pink
)
)
Run Code Online (Sandbox Code Playgroud)
这是真的吗?NAME和COLOR当然是列的名称.我阅读文档,但我没有发现任何有趣的东西.
小智 54
使用 $result = $q->fetchAll(PDO::FETCH_OBJ);
vim*_*ist 10
这样做:
<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $q->fetchAll(PDO::FETCH_OBJ);
//$result contains an array of stdObjects
?>
Run Code Online (Sandbox Code Playgroud)
然而,更酷的方法是让PDO实例化您自己的类并为您填充属性:
Example#4为每个结果实例化一个类
以下示例演示PDO :: FETCH_CLASS提取样式的行为.
<?php
class fruit {
public $name;
public $colour;
}
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_CLASS, "fruit");
//$result contains an array of fruit objects
?>
Run Code Online (Sandbox Code Playgroud)
资料来源:http://www.php.net/manual/en/pdostatement.fetchall.php
| 归档时间: |
|
| 查看次数: |
26971 次 |
| 最近记录: |