代码之家  ›  专栏  ›  技术社区  ›  user1032531

如何在config.ini文件中指定特定于pdo驱动程序的连接选项?

  •  0
  • user1032531  · 技术社区  · 6 年前

    我典型的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
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   user1032531    6 年前

    根据马丁的评论,这就是我最终所做的:

    [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