致命错误:即使包含包含该类的文件,也找不到类

时间:2014-12-11 17:17:41

标签: php mysql database

我只是想在我的本地运行一个我从服务器复制的网站。 在我的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的对象时,它会在我尝试的行上返回Fatal error: Class 'DB_Class' not found,在这种情况下它是第6行。虽然它工作得很好在服务器上。

我尝试将类User扩展到类DB_Class,但在我尝试扩展的行上再次出现相同的错误。

有人请指出错误。感谢。

1 个答案:

答案 0 :(得分:2)

您的网站结构似乎是在名为classes的文件夹中设置了两个类文件。正如link所示,包含中的相对路径很少很顺利,因为它是用于所有包含的调用脚本的路径,包括其他包含文件中的路径。除非您在路径中指定了classes文件夹,否则index.php不知道config.php文件的位置。您应该在user.php文件中执行此操作。

include_once $_SERVER['DOCUMENT_ROOT'] . '/classes/config.php';

或使用

require_once dirname(__FILE__) . '/config.php';

任何一个都将删除相对链接并允许该文件包含在目录结构中的任何位置。