编辑:我删除了名称空间,但它仍然无效。如果我使用blog.php将文件移动到同一文件夹中,则可以正常工作。目前,我已经在管理文件中再次连接到数据库,但我认为这不是解决方案。
这是我发布的第一个问题。我最近开始学习PHP,我真的很喜欢它,但我现在遇到了问题。我已经搜索了答案,但我找不到任何相关内容。
所以这就是我的问题。
我正在尝试构建一个简单的博客,我想创建一个管理部分。所以我创建了一个新文件夹' admin'和一个文件" index.php'在里面。当我需要' blog.php'连接到数据库的文件,我收到错误:
'致命错误:在第5行' 的C:\ xampp \ htdocs \ blog \ blog.php中调用未定义的函数Blog \ DB \ connect()。
在包含我所有与数据库相关的函数的文件db.php中,我使用名称空间Blog \ DB。 我真正得到的是,如果我移动管理员' index.php'将文件放在与blog.php相同的文件夹中。
以下是两个文件的代码。
blog.php :
<?php
require 'functions.php';
require 'db.php';
//Connect to the db
$conn = Blog\DB\connect($config);
if (!$conn) die('Problem connecting to the db!');
?>
系统管理员/ index.php的
<?php
require '../blog.php';
?>
db.php使用:
namespace Blog\DB;
谢谢!
答案 0 :(得分:0)
尝试更改
$conn = Blog\DB\connect($config);
到
$conn = \Blog\DB\connect($config);
即使不确定这是否应该起作用,因为我认为这不是命名空间问题。
答案 1 :(得分:0)
试试这个......
require __DIR__ . '/../db.php';
我也在使用PHP并遇到与您相同的问题。我尝试了上面这一行并且它有效。
注意:我的工作没有别名和命名空间。
答案 2 :(得分:-1)
我遇到了同样的问题,我刚才补充道
require '../db.php';
在admin / index.php中
它解决了这个问题,但我不知道为什么会出现这个问题。
我最好的猜测是,当我们需要使用命名空间的文件时(比如你的blog.php使用Blog / DB),我们必须要求我们设置该命名空间的文件(db.php)
答案 3 :(得分:-1)
我最近遇到了同样的问题,经历了相同的PHP课程。问题是包含在子目录中导致文件路径问题。它与名称空间无关。
将blog.php中的require 'db.php';
替换为:
require __DIR__ . '/db.php';
如果您运行的PHP版本低于5.3,请使用:
require dirname(__FILE__) . '/db.php';
现在当它包含在/admin/index.php中时,对于blog和admin子目录,引用都是正确的。