包含dbconfig.php文件在使用直接路径而不是相对路径时失败

时间:2013-08-02 15:12:37

标签: php path include

我正在开发一个应用并使用子文件夹作为测试域。

http://mywebsite/testing-folder

我的dbconfig位于:

http://mywebsite/testing-folder/lib/dbconfig.php

如果我包含以下文件:  http://mywebsite/testing-folder/userarea/profile

相对路径很好。如果我用直接路径包含它会引发错误:

FATAL ERROR: Call to a member function prepare() on a non-object in...

$root = 'http://mywebsite/testing-folder/';
include '../../lib/dbconfig.php'; // This works
include $root.'lib/dbconfig.php'; // This does not

任何关于为什么的线索?

2 个答案:

答案 0 :(得分:2)

您必须使用文件系统路径,而不是使用URL。而不是

$root = 'http://mywebsite/testing-folder/';

类似

$root = '/var/www/whatever/';
应该使用

。当您在php上包含php时,您的网络服务器已经解释了代码并返回您输出的内容(如echo "hello world";)。如果您的文件只包含配置,则输出可能为空。

答案 1 :(得分:1)

您正在尝试通过HTTP包含文件。这是不对的,您应该包含将本地文件系统路径传递给includerequire的文件。

你的root应该是这样的:

$root = '/var/www/mywebsite/testing-folder/';