改变Laravel中的基础PDO配置

时间:2016-06-06 08:36:45

标签: laravel pdo laravel-5

我的共享网络主机在查询准备方面存在一些问题,我想启用PDO的模拟准备,$result = mysql_query("SELECT * FROM table WHERE title_1 ='$title_1' "); if( mysql_num_rows($result) > 0) { mysql_query("UPDATE table SET column = '$value' WHERE title_1 = '$title_1' "); } else { mysql_query("INSERT INTO table (title_1) VALUES ('$title_1') "); } 中没有此选项。

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

1 个答案:

答案 0 :(得分:5)

您可以添加“options”数组,以便在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

相关问题