【发布时间】:2016-07-29 11:00:26
【问题描述】:
Mysqli_result 类具有fetch_all() 方法,以行数组的形式一次从结果集中返回多行(实际上这是二维数组,因为行已经是字段数组)。还有一个结果集有方法 fetch_object() 以对象的形式返回单行。
现在我想扩展 mysqli_result 类并添加新方法 fetch_objects()(复数),它将返回关联键为记录 ID [id=>Object()] 的对象关联数组。当然,我还需要扩展 mysqli 类并覆盖它的 query() 方法以返回我的扩展结果集。但我不明白 mysqli 和返回的 mysqli_result 之间的连接和查询参数的传输是如何进行的。
这应该这样工作:
$db=new ReallyMySQLi(...); //initiating my mysqli
$myrst=$db->query($SQL); //returned my extended result
//fetch_objects() returning associative array of objects
//with record ID as associative key
foreach($myrst->fetch_objects() as $id=>$object)
{
echo 'Customer ID:'.$id; //or $object->id;
echo 'Customer firstname:'.$object->firstname;
echo 'Customer lastname:'.$object->lastname;
}
【问题讨论】:
标签: php inheritance mysqli resultset