我有这样一句话:
$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'吗?
答案 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()。
选择是你的:))