0

クエリがありました:

$query = 
  Yii::app()->db->createCommand()->setFetchMode(PDO::FETCH_OBJ)
    ->select('*')
    ->from('products p')
    ->limit(5);

そして、私は結果を得ました:

$result = $query->queryAll();

既存のクエリ オブジェクトを書き換えずに使用して、「選択」と「制限」の値を再インスタンス化するにはどうすればよいですか。選択を「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');

私の問題は、選択を「リセット」したいということです。したがって、基本的にこれらの選択を元に戻します。これは可能ですか?

4

1 に答える 1

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();
于 2013-03-14T08:52:34.143 に答える