更改Laravel中的基本PDO配置

Web*_*nan 4 pdo laravel laravel-5

我的共享Web主机在查询准备方面有一些问题,我想启用PDO的模拟准备,在中没有此选项config\database.php

我有什么办法可以在Laravel中做到吗?

Jus*_*and 6

您可以在config / database.php中添加一个“选项”数组来向数据库连接添加选项:

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
        // Additional options here
        'options'   => [PDO::ATTR_EMULATE_PREPARES => true, PDO::MYSQL_ATTR_COMPRESS => true,]
    ],
Run Code Online (Sandbox Code Playgroud)

您将看到我还为我的连接打开了MYSQL_ATTR_COMPRESS。

您可以在此处找到有关它们内置的某些选项的更多信息:

https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Connectors/Connector.php

  • 请注意,此设置ATTR_EMULATE_PREPARES => true,将使数据库输出字符串化。例如,tinyint将以字符串形式输出 (3认同)