Reputation: 26301
My typical PDO connection is as follows. How can I set the driver-specific connection options (i.e. \PDO::ATTR_ERRMODE=>\PDO::ERRMODE_EXCEPTION
) in the config.ini file without converting these option constants to their integer values?
<?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
]
);
config.ini
[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
Upvotes: 0
Views: 989
Reputation: 26301
Per Martin's comments, this is what I ended up doing:
[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
Upvotes: 1