我看了下DISCUZ的数据库工具类
我有个疑惑:
function dql($sql)
{
$res=$this->mysqli->query($sql);
if(!empty($res))
{
$arr=array();
while ($row=$res->fetch_row())
{$arr[]=$row;}
return $arr;
$res->free_result();
}else
{return null;}
他是把从数据库取出来的数据变成一个数组$ROW然后又把$row 存储到了$arr ,那这样他返回的就是一个二维数组
那为什么不直接返回一个$row?何必再进行2次封装呢?
回复讨论(解决方案)
返回一个$row , 你还怎么获取所有记录呢。
如果只返回$row,只会取得最后一条数据。
现在返回的是二维数组,返回的是表结构的多条数据。
$row是一条记录如果不封装成二维数组你永远获得一条记录就算你循环也是一条记录(表里最后一条记录)。
为了获取更多记录所以要将一维数组放到二维数组里面这样循环的时候不会覆盖前面的数据也就把所以数据取出来了。
$row每一次?取一???,所以需要循?去?取。