PHP常量未定义

时间:2014-05-07 15:52:35

标签: php mysql database

我正在使用数据库项目,我创建了一个单独的文件来保存所有数据库信息名称' config.php'。对于数据库,我保留了另一个数据库.php'文件在同一目录中。

------------------------的config.php --------------

<?php
defined('DB_SERVER') ? null : define('DB_SERVER',"localhost");
defined('DB_USER')   ? null : define('DB_USER',"gallery");
defined('DB_PASS')   ? null : define('DB_PASS',"phpOTL123");
defined('DB_NAME')   ? null : define('DB_NAME',"photomania");
?>

------------------------ databae.php -------------

<?php
require_once("config.php");
class MySQLDatabase{
    private $conn;

    function __construct(){
        $this->open_connection();
    }
    public function open_connection(){
        $this->conn = mysqli_connect(DB_SERVER,DB_USER,DB_PASS);
        if(!$this->conn){
            die("Database Connection Failure :(".mysql_errno());
        }else{
            $db_select = mysqli_select_db($this->conn,DB_NAME);
            if(!$db_select){
                die("Can't select the database".mysql_errno());
            }
        }
    }
    public function close_connection(){
        if(isset($this->conn)){
            mysqli_close($this->conn);
            unset($this->conn);
        }
    }
}

$database = new MySQLDatabase;
?>

问题是当我使用

在索引文件中包含database.php时
require_once("../includes/database.php");

它会出现以下错误。


  

注意:使用未定义的常量DB_SERVER - 假设&#39; DB_SERVER&#39;在   第11行的C:\ XAMPP \ htdocs \ gallery \ includes \ database.php

     

注意:使用未定义的常量DB_USER - 假设&#39; DB_USER&#39;在   第11行的C:\ XAMPP \ htdocs \ gallery \ includes \ database.php

     

注意:使用未定义的常量DB_PASS - 假设&#39; DB_PASS&#39;在   第11行的C:\ XAMPP \ htdocs \ gallery \ includes \ database.php

     

警告:mysqli_connect():php_network_getaddresses:getaddrinfo   失败:没有这样的主人知道。在   第11行的C:\ XAMPP \ htdocs \ gallery \ includes \ database.php

     

警告:mysqli_connect():( HY000 / 2002):php_network_getaddresses:   getaddrinfo失败:没有这样的主机。在   第11行数据库中的C:\ XAMPP \ htdocs \ gallery \ includes \ database.php   连接失败:(


任何帮助??????

2 个答案:

答案 0 :(得分:2)

你的问题似乎在于以下一行

require_once("config.php");

尝试用

替换它
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "config.php");

答案 1 :(得分:0)

如果在定义常量之前必须检查是否定义了常量,那么构造错误就是错误的。只需删除检查,定义它们,并始终使用require_once。