我有一个问题:
$query =
Yii::app()->db->createCommand()->setFetchMode(PDO::FETCH_OBJ)
->select('*')
->from('products p')
->limit(5);
然后我得到了结果:
$result = $query->queryAll();
如何在不重写的情况下使用现有查询对象来重新实例化“select”和“limit”的值。我想将select更改为“count(p.productid)”并取消设置限制。我尝试了以下但是它不起作用:
$query =
Yii::app()->db->createCommand()->setFetchMode(PDO::FETCH_OBJ)
->select('*')
->from('products p')
->limit(5);
$result = $query->queryAll();
$query =
$query
->select('count(p.productid)')
->limit(-1);
$result2 = $query->queryRow();
这仍然会返回第一个选择的结果吗?
修改
基本上,我想重置选择。看起来它建立在选择上。所以,我认为你可以这样做:
$query =
$query->select('something')
->select('somethingElse')
->select('somethingMoreStuff');
我的问题是我想“重置”选择。所以基本上UNDO这些选择。这可能吗?
答案 0 :(得分:0)
你为什么不这样做:
$intialQuery =
Yii::app()->db->createCommand()->setFetchMode(PDO::FETCH_OBJ)
->from('products p');
$query = $intialQuery
->select('*')
->limit(5);
$query2 = $intialQuery
->select('count(p.productid) as number')
->limit(-1);
$result = $query->queryAll();
$result2 = $query2->queryRow();