通过调用 - >更改选择参数选择两次?

时间:2013-03-14 08:29:09

标签: database yii

我有一个问题:

$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这些选择。这可能吗?

1 个答案:

答案 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();