尝试在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);