如何在yii中将sql查询放入数组中

时间:2014-01-02 03:13:34

标签: mysql yii

我有这样一句话:

 $line= Yii::app()->db->createCommand()->select('line_no')->from('tblvehicleimage') ->where('serial_no=:serial_no', array(':serial_no'=>$model->serial_no)) ->queryScalar();

如何将所有$ line数据放入数组中?有什么办法可以使用'mysql_fetch_array'吗?

2 个答案:

答案 0 :(得分:2)

queryScalar表示只会检索一条记录。

您希望使用serial_no IN (1, 2, 3)queryAll()代替queryScalar()

$serial_nos = array(1, 2, 3);
$serial_nos = implode($serial_nos);

$line = Yii::app()->db->createCommand()
        ->select('line_no')
        ->from('tblvehicleimage')
        ->where('serial_no IN ('.$serial_nos.')')
        ->queryAll();

查询成功后,$line将包含一个数组,然后您只需循环搜索结果:

foreach ($line as $key=>$item) {
    // do something with each $item
}

答案 1 :(得分:2)

由于您只想从表格中选择 line_no ,您还可以使用queryColumn()

$line = Yii::app()->db->createCommand()
        ->select('line_no')
        ->from('tblvehicleimage')
        ->where('serial_no IN ('.$serial_nos.')')
        ->queryColumn();

如果你想要像

那样的一维数组
array(1,2,3)

作为结果,您可以使用 queryColumn()
但如果你想要

array(array(1),array(2),array(3))

作为您的答案,您可以使用 queryAll()

选择是你的:))