我有一个config.php文件,其中包含:
<?php
// Config File
return array(
//database connections
'db_type' = 'mysql';
'db_host' = 'localhost';
'db_user' = 'user';
'db_pass' = 'pass';
'db_name' = 'name';
);
然后我在我的init文件中调用它(我已尝试使用和不使用GLOBAL)
if (file_exists(ROOT . DS . 'app' . DS . 'core' . DS . 'config.php'))
{
$config = include('config.php');
GLOBAL $config;
}
在我的数据库类中,我尝试过以两种不同的方式使用
1
private $db_type = $config['db_type'];
private $db_host = $config['db_host'];
private $db_user = $config['db_user'];
private $db_pass = $config['db_pass'];
private $db_name = $config['db_name'];
2
function __construct() {
global $config;
$this->db_type = $config['db_type'];
$this->db_host = $config['db_host'];
$this->db_user = $config['db_user'];
$this->db_pass = $config['db_pass'];
$this->db_name = $config['db_name'];
}
方式1表示意外的$ config,方式2使数据库抛出错误“找不到驱动程序”
我的配置文件不仅包含数据库配置,还包括网站名称,根网址,公共路径等。
我该如何使这项工作?有什么我想念的吗?我应该采取不同的方式吗?
有人知道一个好的教程或示例吗?
感谢阅读。
答案 0 :(得分:2)
你忘记了'&gt;'你应该使用逗号而不是分号来分隔键值对:
<?php
// Config File
return array(
//database connections
'db_type' => 'mysql',
'db_host' => 'localhost',
'db_user' => 'user',
'db_pass' => 'pass',
'db_name' => 'name',
);
答案 1 :(得分:1)
global
是邪恶的,请不要使用它。
我使用常量作为数据库参数:
define('DB_NAME', 'MyDatabase');
define('DB_USER', 'root');
define('DB_PASSWORD', '1234');
然后,使用require
代替include
作为config.php。没有它,你的申请不应该继续。