有没有更好的方法来返回db result的对象?
我知道“return $statement->fetchall(PDO::FETCH_CLASS, 'modelClassName');
”但它只适用于fetchall函数吗?
class modelArea extends Model {
public $areaID;
public $postcode;
public static function find($condition, $parameters) {
$query = "SELECT * FROM area WHERE " . $condition;
$statement = self::getDb()->prepare($query);
if (!$statement->execute($parameters))
return false;
$query = $statement->fetch(PDO::FETCH_ASSOC);
$a = new modelArea();
$a->areaID = $query['areaID'];
$a->postcode = $query['postcode'];
return $a;
}
}
答案 0 :(得分:15)
PDOStatement::fetchObject
方法可以满足您的需求。
您可以像以下一样使用它:
$a = $statement->fetchObject('modelArea');
这将导致$a
成为类modelArea
的对象,相当于您提供的代码。
答案 1 :(得分:1)
您可以创建modelArea
类(或单独的工厂类)的静态方法并调用:
modelArea::createFromArray($query);
或甚至有一个返回modelArea
个对象
modelArea::createFromStatement($stmt);