最初のクエリで一部の日付を保持するテンポラリテーブルを作成しています。そして、2番目のクエリでは、それらの日付に参加しようとしています...そして、私はエラーを受け取ります。Yii - テンポラリテーブルを作成し、次のクエリで使用します。一般的なエラー:2014バッファされていない他のクエリがアクティブな間にクエリを実行できません。
SQLSTATE [HY000]:一般的なエラー:2014バッファリングされていないクエリがアクティブな間はクエリを実行できません。 PDOStatement :: fetchAll()の使用を検討してください。あなたのコードだけで、これまでのMySQLに対して実行しようとしている場合あるいは、あなたはPDO :: MYSQL_ATTR_USE_BUFFERED_QUERY属性を設定することで、クエリのバッファリングを可能にしてもよい。..
まずクエリ:
$query = "DROP TABLE if exists TempDatesTable;";
$query .= "CREATE TEMPORARY TABLE TempDatesTable (days char(20)) TYPE=HEAP DEFAULT CHARSET=utf8;";
foreach ($allDatesInsideInterval as $date) {
$query .= "INSERT INTO TempDatesTable VALUES('$date');";
}
Yii::app()->db->createCommand($query)->execute();
2番目のクエリを
$command = Yii::app()->db->createCommand()
->select('allDays.days as periodDay, numberOfSentRequests, numberOfReceivedRequests, numOfLogins, numOfProfilesViewed')
->from("(" . $commandDates->getText() . ") allDays")
->leftJoin("(" . $commandProfileViewed->getText() . ") accessLog", 'allDays.days = accessLog.days')....
私は2番目のクエリを実行しようとすると:
return new CSqlDataProvider($command->getText(), array(
'totalItemCount' => count($allDatesInsideInterval),
'pagination' => array(
'pageSize' => self::PAGE_SIZE
),
...
を私はSEを持っています私はfetchAll()をする必要があります。とcloseCursor(); ...でも、どうやってYiiでやるの? アイデアあなたは、実行、および/またはクエリのデータをフェッチした後
を変更してくださいあなたは$コマンド - を使用する場合がありますように思える>リセット()の代わりに:http://www.yiiframework.com/doc/api/1.1/CDbCommand#リセット詳細 – acorncom