我有一个名为 Category 的表,其中包含几列,我试图从我的数据库中只获取一些列。
所以我试过这个:
$sql = 'SELECT uppercat AS id, COUNT(uppercat) AS uppercat FROM category GROUP BY uppercat;';
$d = Yii::app()->db->createCommand($sql)->query();
但我发现输出很奇怪。我试图做一个 array_shift 但我得到一个错误,这不是一个数组。当我对 $d 执行 var_dump 时:
object(CDbDataReader)[38]
private '_statement' =>
object(PDOStatement)[37]
public 'queryString' => string 'SELECT uppercat AS id, COUNT(uppercat) AS uppercat FROM category GROUP BY uppercat;' (length=100)
private '_closed' => boolean false
private '_row' => null
private '_index' => int -1
private '_e' (CComponent) => null
private '_m' (CComponent) => null
好的..然后我在$id上做了一个foreach:
array
'id' => string '0' (length=1)
'uppercat' => string '6' (length=1)
array
'id' => string '3' (length=1)
'uppercat' => string '2' (length=1)
array
'id' => string '6' (length=1)
'uppercat' => string '1' (length=1)
array
'id' => string '7' (length=1)
'uppercat' => string '2' (length=1)
array
'id' => string '9' (length=1)
'uppercat' => string '2' (length=1)
那为什么我会收到 $id 不是数组但它包含数组的消息?
有没有其他方法可以从我的数据库中获取一些特定数据,然后我可以对它们执行 array_shift ?我也试过用 findAllBySql 来做这件事,但是我无法达到我的 COUNT(uppercat) 属性,这不在我的模型中。我想我必须将它添加到我的模型中,但我不喜欢这样,因为我只需要它一次。