Yii2 SQLSTATE [IMSSP]: в активном наборе результатов больше нет строк

#php #mysql #yii2 #sqlsrv #yii2-basic-app

#php #mysql #yii2 #sqlsrv #yii2-basic-app

Вопрос:

Я пытаюсь перенести данные в базу данных MySQL, извлекая данные с SQL Server с помощью Yii2. Процесс завершен успешно, но я получаю журнал ошибок.

Код:

 $query = (new Query())
            ->from("tablename");

foreach ($query->batch(10000 , Yii::$app->sqlsrv) as $data) {
    $mysqlDb->createCommand()
            ->batchInsert('my_table', array_keys($data[0]),$data,['each' => true])
            ->execute();
}
  

Журнал ошибок :

2020-08-27 11:05:43 [ошибка][Исключение PDOException] Исключение PDOException: SQLSTATE [IMSSP]: в активном наборе результатов больше нет строк. Поскольку этот набор результатов не прокручивается, больше данные не могут быть извлечены. в /var/www/portal/vendor/yiisoft/yii2/db/DataReader.php:112 Трассировка стека: #0 /var/www/portal/vendor/yiisoft/yii2/db/DataReader.php (112): PDOStatement-> fetch() #1 /var/www/portal/vendor/yiisoft/yii2/db/BatchQueryResult.php (143): yii db DataReader-> read() #2 /var/www/portal/vendor/yiisoft/yii2/db/BatchQueryResult.php (112): yii db BatchQueryResult-> fetchData() #3 /var/www/portal/modules/axapta/commands/DefaultController.php (122): yii db BatchQueryResult-> next() #4 [внутренняя функция]: app modulesaxaptacommandsDefaultController-> actionItemsStock() #5 /var/www/portal/vendor/yiisoft/yii2/base/InlineAction.php (57): call_user_func_array(массив, Array) #6 /var/www/portal/vendor/yiisoft/yii2/base/Controller.php (157): yiibaseInlineAction-> runWithParams(массив) #7 /var/www/portal/vendor/yiisoft/yii2/console/Controller.php (148): yiibase Controller-> runAction(‘items-stock’, массив) #8 /var/www/portal/vendor/yiisoft/yii2/base/Module.php(528): yii console Controller-> runAction(‘items-stock’, массив) #9 /var/www/portal/vendor/yiisoft/yii2/console/Application.php (180): yiibase Module-> runAction(‘axapta/items-st…’, Массив) #10 /var/www/portal/vendor/yiisoft/yii2/console/Application.php (147): yiiconsoleApplication-> runAction(‘axapta/items-st…’, Массив) #11 /var/www/portal/vendor/yiisoft/yii2/base/Application.php (386): yii consoleApplication-> handleRequest(Object(yii consoleRequest)) #12 /var/www/portal/yii(22): yiibaseApplication-> run() #13 {main} 2020-08-27 11:03:07 [информация][приложение] $_GET = []

 $_POST = []

$_FILES = []

$_COOKIE = []
  

Комментарии:

1. Попробуйте обновить Yii 2 — аналогичная ошибка была исправлена год назад: github.com/yiisoft/yii2/pull/17433

2. Я использую версию v2.0.38, и у меня тоже возникла эта проблема.

3. Попробуйте обновить. Моя проблема исправлена.