我正在开发一个应用并使用子文件夹作为测试域。
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
任何关于为什么的线索?
答案 0 :(得分:2)
您必须使用文件系统路径,而不是使用URL。而不是
$root = 'http://mywebsite/testing-folder/';
类似
$root = '/var/www/whatever/';
应该使用。当您在php上包含php时,您的网络服务器已经解释了代码并返回您输出的内容(如echo "hello world";
)。如果您的文件只包含配置,则输出可能为空。
答案 1 :(得分:1)
您正在尝试通过HTTP包含文件。这是不对的,您应该包含将本地文件系统路径传递给include
或require
的文件。
你的root应该是这样的:
$root = '/var/www/mywebsite/testing-folder/';