【问题标题】:Alter base PDO configuration in Laravel在 Laravel 中更改基本 PDO 配置
【发布时间】:2016-10-05 19:05:05
【问题描述】:

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

有什么方法可以在 Laravel 中做到这一点?

【问题讨论】:

    标签: laravel pdo laravel-5


    【解决方案1】:

    您可以在 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,]
        ],
    

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

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

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

    【讨论】:

    • 谢谢,我喜欢看像 laravel 这样的开源东西背后的代码,你是如何找到相应文件的?
    • 为了节省空间,我为您和其他可能感兴趣的人创建了一个 Gist。 gist.github.com/justinobb/25995796ed1a8aa157b578c999544aa2 。对于您的问题,我在通过“API 文档”页面搜索的 Illuminate/Database/Connectors 下搜索了常见的 DB 连接器类“连接器”。很高兴我能帮助你。享受您的源代码浏览!
    • 请注意,此设置 ATTR_EMULATE_PREPARES => true,会将您的数据库输出字符串化。例如,tinyint 将输出为字符串
    猜你喜欢
    • 2019-05-05
    • 2016-05-20
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    相关资源
    最近更新 更多