Запросы PDO без буферизации только при попытке использовать другую таблицу - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь SELECT получить некоторую информацию из таблицы information_schema через PDO. При выполнении любого другого вида SQL-запроса все работает нормально. Однако при попытке запустить USE information_schema; я получаю сообщение об ошибке: General error: 2014 Cannot execute queries while other unbuffered queries are active.

Другими словами, это работает:

static::rawQuery("SET foreign_key_checks=0;");

Но это дает мне исключение:

static::rawQuery("USE `information_schema`;");

Методы не один за другим - я удалил оператор внешнего ключа и заменил его на information_schema.

Для справки: rawQuery метод:

protected static function rawQuery ($query, array $params = null) {
    if ($params === null) {
        $params = [];
    }

    $stmt = static::getPdo()->prepare($query);
    $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $stmt->execute($params);
    $results = $stmt->fetchAll();
    return $results;
}

Обычно я понимаю проблемы с буферизацией в PDO и MySQL. Однако я не могу понять, почему я только получаю эту ошибку при попытке использовать другую таблицу базы данных.

1 Ответ

0 голосов
/ 17 января 2019

Проблема в том, что

USE `information_schema` 

уже является запросом, и поскольку вы пытались выполнить также другой запрос, было выполнено несколько запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...