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'));
}

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

1 ответ

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

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

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

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

'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
    ),
],
Другие вопросы по тегам