【发布时间】:2015-02-10 06:44:00
【问题描述】:
我只是想在本地运行我从服务器复制的网站。
在我的config.php:
define ( 'DB_SERVER', '127.0.0.1' );
define ( 'DB_USERNAME', 'user' );
define ( 'DB_PASSWORD', 'password' );
define ( 'DB_DATABASE', 'database' );
class DB_Class {
function __construct() {
$connection = mysql_connect ( DB_SERVER, DB_USERNAME, DB_PASSWORD ) or die ( 'Connection error -> ' . mysql_error () );
mysql_select_db ( DB_DATABASE, $connection ) or die ( 'Database error -> ' . mysql_error () );
}
}
在我的user.php:
include_once 'config.php';
class User {
// Database connect
public function __construct() {
$db = new DB_Class ();
}
}
在我的index.php:
session_start ();
include_once ('classes/user.php');
$uobj = new User ();
现在,每当我尝试创建 User 类的对象时,它都会在我尝试的行(在本例中为第 6 行)返回一个 Fatal error: Class 'DB_Class' not found。虽然它在服务器上工作得非常好。
我试图将 User 类扩展为 DB_Class 类,但在我尝试扩展的那一行又出现了同样的错误。
请大家指出问题所在。谢谢。
【问题讨论】:
-
无论您在哪里实例化 User 对象,都包含 user.php 吗? (外部 user.php 文件)
-
是的,我猜是用户对象创建成功,但我认为问题出在 user.php 中创建 DB_class 对象的地方。也许是一些权限错误。抱歉,我对此了解不多。
-
尝试 $db = new \DB_Class ();
-
如果你使用
require_once而不是include_once会发生什么? -
@Robbert 包含问题是我建议使用
require_once代替诊断的原因——在无法找到的文件上使用require_once是一个致命错误,因此它应该改变了结果。