0

我目前正在使用 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'));
}

任何指导将不胜感激。

4

1 回答 1

0

我也有同样的问题。

根据 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
    ),
],
于 2018-05-13T09:24:32.157 回答