Хранилище столбцов Laravel и MemSQL, небуферизованные запросы активны

в настоящее время я работаю с MemSQL Columnstore и пытаюсь интегрировать его с laravel 5, но каждый раз, когда я пытался сделать запрос, я получал следующую ошибку

SQLSTATE[HY000]: Общая ошибка: 2014 Не удается выполнить запросы, пока активны другие небуферизованные запросы. Попробуйте использовать PDOStatement::fetchAll().

Я искал и нашел это:

Не использовать подготовленные операторы в Laravel Eloquent ORM?

И пытался сделать это так, но не работает. Вот мой запрос

 public function index(){
    $sql = 'SELECT * FROM SCORE LIMIT 20';
    $pdo = DB::getPdo();
    $query = $pdo->query($sql);
    $result = $query->fetchAll();

    return view('home', compact('result'));
}

Любое руководство будет высоко оценено.


person Michell Quintero    schedule 31.07.2017    source источник


Ответы (1)


У меня была такая же проблема.

Согласно документации MemSQL, вам необходимо настроить клиентский драйвер: https://docs.memsql.com/concepts/v6.0/prepared-statements/

В database.php добавьте новый ключ параметров.

Вот моя конфигурация, она почти такая же, как и по умолчанию, обратите внимание на ключ options.

'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
    'options' => array(
        PDO::ATTR_EMULATE_PREPARES => TRUE
    ),
],
person PaulM    schedule 13.05.2018