php - 如何在 config.ini 文件中指定 PDO 驱动程序特定的连接选项?
问题描述
我的典型 PDO 连接如下。如何\PDO::ATTR_ERRMODE=>\PDO::ERRMODE_EXCEPTION
在 config.ini 文件中设置特定于驱动程序的连接选项(即)而不将这些选项常量转换为其整数值?
<?php
$config=parse_ini_file(__DIR__.'/../config.ini', true, INI_SCANNER_TYPED);
$db = $config['mysql'];
$conn=new \PDO(
"mysql:host={$db['host']};port={$db['port']};dbname={$db['dbname']};charset={$db['charset']}",
$db['username'],
$db['password'],
[
\PDO::ATTR_EMULATE_PREPARES=>false,
\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY=>true,
\PDO::ATTR_ERRMODE=>\PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_DEFAULT_FETCH_MODE=>\PDO::FETCH_ASSOC
]
);
配置文件
[mysql]
host = localhost
port = 3306
charset = utf8mb4
dbname = myDatabase
username = myUsername
password = myPassword
;options[PDO::ATTR_EMULATE_PREPARES] = false
;options[PDO::MYSQL_ATTR_USE_BUFFERED_QUERY] = true
;options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION
;options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_ASSOC
解决方案
根据马丁的评论,这就是我最终做的事情:
[mysql]
host = localhost
port = 3306
charset = utf8mb4
dbname = myDatabase
username = myUsername
password = myPassword
options[20] = false ;PDO::ATTR_EMULATE_PREPARES
options[1000] = true ;PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
options[3] = 2 ;PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
options[19] = 2 ;PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
推荐阅读
- flutter - 如何将货币符号向右对齐
- java - 基于 XML 上下文的 bean 无法执行构造函数注入:未找到默认构造函数
- python - 使用 Keras 回归或我应该使用什么模型?
- php - 升级到 Laravel 6.0.x 后调用未定义函数 App\Providers\studly_case()
- r - 在字符串的开头移动字符,在 R 中保持其他字符的位置不变
- javascript - MissingSchemaError:尚未为模型“用户”注册架构。尝试了stackOverflow上的所有答案
- system-verilog - super.build_phase() 有什么作用?
- openssl - 电子如何使用openssl?
- regex - VSCode:更改自定义TextMate语法中规则的优先级?
- css - 带文字的静态栏