【发布时间】:2014-05-07 15:52:34
【问题描述】:
我正在处理一个数据库项目,我创建了一个单独的文件来保存所有数据库信息名称“config.php”。对于数据库,我在同一目录中保留了另一个“database.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 - 在 C:\XAMPP\htdocs\gallery\includes\database.php 在第 11 行
注意:使用未定义的常量 DB_USER - 在 C:\XAMPP\htdocs\gallery\includes\database.php 在第 11 行
注意:使用未定义的常量 DB_PASS - 在 C:\XAMPP\htdocs\gallery\includes\database.php 在第 11 行
警告:mysqli_connect():php_network_getaddresses:getaddrinfo failed:不知道这样的主机。在 C:\XAMPP\htdocs\gallery\includes\database.php 在第 11 行
警告:mysqli_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo 失败:不知道这样的主机。在 C:\XAMPP\htdocs\gallery\includes\database.php 在第 11 行数据库 连接失败:(
任何帮助??????
【问题讨论】:
-
旁注:您将
mysql_与mysqli_混合在一起 -
将
config.php中的代码直接复制到database.php中是否也有同样的问题? -
@Barmar OP 是不是在构造中缺少
$this->conn = $conn;,因为$conn是私有的? -
我不这么认为。在 PHP 中,您总是使用
$obj->name语法访问属性。 -
好的。好吧,我用同一个文件夹中的两个文件测试了 OP 的代码,没有遇到任何问题,所以据我所知,这只是一个路径问题。 @Barmar