PDO数据源名称无效



尝试在config.php中连接数组时,我得到"数据源名称无效"。如果我硬编码它,它工作正常,我在这里做错了什么?

谢谢

配置.php

<?php
return [
    'database' => [
        'host' => 'mysql:host=127.0.0.1',
        'database' => 'pdo_database',
        'username' => 'root',
        'password' => '',
        'options' => [
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        ]
    ]
];

连接.php

<?php
$config = require('config.php');
$database = $config['database'];
class Connection {
    public function make() {
        try {
            return new PDO(
                $database['host'].';dbname='.$database['database'],
                $database['username'],
                $database['password'],
                $database['options']
            );
        } catch(PDOException $e) {
            die($e->getMessage());
        }
    }
}

问题是 make() 方法不能简单地访问全局变量。 如果将$database配置传递到make()方法中...

public function make($database) {

这将传递为这组参数创建数据库连接所需的配置。

根据您使用此类的方式,可以将其更改为静态方法

public static function make($database) {

然后像这样使用它...

$connection = Connection::make($database);

最新更新