Как указать специфичные для драйвера PDO параметры подключения в файле config.ini? - PullRequest
0 голосов
/ 02 февраля 2019

Мое типичное соединение 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
    ]
);

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

1 Ответ

0 голосов
/ 02 февраля 2019

Согласно комментариям Мартина, это то, что я закончил:

[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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...