致命错误:找不到类'数据库' - PHP

时间:2011-01-17 19:01:34

标签: php

当我尝试使用问题类时,我收到以下错误:

Fatal error: Class 'database' not found in path/problem.php on line 25

我不明白为什么我得到这个错误,在problem.php的顶部我需要database.php。发生了什么事?

problem.php

<?php
require("common.php");
require("database.php");
...
?>

database.php中

<?php
class database
{
    ...
}
?>

4 个答案:

答案 0 :(得分:11)

这可能是一个包含路径问题。为了解决它,在你的problem.php文件中

这样做:

echo realpath (dirname(__FILE__));

将输出类似

的内容

/无功/网络/ HTML / myfilepath /

你的文件,problem.php将在那个目录中。

现在,如果database.php也在该目录中,你可以这样做

$filepath = realpath (dirname(__FILE__));

require_once($filepath."/database.php");

如果它在其他地方你可以做到

require_once($filepath."/../../path/to/somewhere/else/database.php");

答案 1 :(得分:1)

你包含文件吗?

 include "database.php"; // or the path relative to database.php
 class problem
{

没关系。 也许:include(必需)没有打开文件。

答案 2 :(得分:0)

可以添加

echo "OK";

到database.php的页脚并再次检查?

所以,我们可以理解,database.php确实包含在页面中。

答案 3 :(得分:-1)

后人:只是为了澄清这个失败的原因是你从ORIGINAL调用的角度来看,让我解释一下这个例子:

myfolder/index.php
<?php
 include ("classes/problem.php");
 ...
?>

这意味着,当您到达“problem.php”并提及“database.php”时,您处于“myfolder/”,就PHPland而言,并非“myfolder/classes” “(你需要进入这个才有意义)。正确的做法是通过第1页第1行的常量来简单地使用绝对路径。我知道很多人说的很糟糕 - 但是老实说这就是“命名空间”应该修复但是我仍然会使用常量(IMHO命名空间在php中很糟糕,更多的是与自我强化/开源广告/作者自我吹嘘任何具体或有用的议程)