我收到了无效的数据来源名称'当试图连接config.php中的数组时。如果我硬编码我在这里做错了什么呢?
由于
的config.php
<?php
return [
'database' => [
'host' => 'mysql:host=127.0.0.1',
'database' => 'pdo_database',
'username' => 'root',
'password' => '',
'options' => [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]
]
];
connection.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());
}
}
}
答案 0 :(得分:1)
问题是make()
方法不能简单地访问全局变量。如果您将$database
配置传递到make()
方法...
public function make($database) {
这会传递为这组参数创建数据库连接所需的配置。
根据您使用此类的方式,您可以将其更改为静态方法
public static function make($database) {
然后像这样使用它......
$connection = Connection::make($database);