include_once():无法打开流:没有这样的文件或目录-PHP
我试图用php制作一个简单的注册系统。我有一个名为Admin(在controller文件夹中)的类,它扩展了DBConnection.php类。Admin类有一个允许adming注册的注册方法,但遇到了问题。“include_once”出现错误,错误为“警告:include_once(../Database/DBConnection.php):无法打开流:第15行的C:\xampp\htdocs\WoodlandsAway\controller\Admin.php中没有此类文件或目录----- ' “警告:include_once():在第15行的C:\xampp\htdocs\WoodlandsAway\controller\Admin.php中打开“../Database/DBConnection.php”以包含(include_path='C:\xampp\php\PEAR')失败----- ' '致命错误:在第17行的C:\xampp\htdocs\WoodlandsAway\controller\Admin.php中找不到类'DBConnection' 这是我的include_once代码include_once():无法打开流:没有这样的文件或目录-PHP,php,mysql,include-once,Php,Mysql,Include Once,我试图用php制作一个简单的注册系统。我有一个名为Admin(在controller文件夹中)的类,它扩展了DBConnection.php类。Admin类有一个允许adming注册的注册方法,但遇到了问题。“include_once”出现错误,错误为“警告:include_once(../Database/DBConnection.php):无法打开流:第15行的C:\xampp\htdocs\WoodlandsAway\controller\Admin.php中没有此类文件或目录-----
include_once ('../Database/DBConnection.php');
--DBConnection.php
class DBConnection {
//put your code here
private $host;
private $user;
private $pass;
private $database;
private $conn;
function DBConnection() {
$this->host = 'localhost';
$this->user = 'root';
$this->pass = '';
$this->database = 'woodlands_away';
}
public function getConnections() {
$this->conn = new mysqli($this->host, $this->user, $this->pass, $this->database) or
die($this->conn->error);
return $this->conn;
}
}
和Admin.php
include_once ('../Database/DBConnection.php');
class Admin extends DBConnection {
public function Admin() {
parent::DBConnection();
}
public function signup($username, $password) {
$sql = "insert into users values(".$username.", ".$password.")";
return $this->getConnections()->query($sql);
}}
首先,我建议您声明一个表示项目根路径的常量。必须以独特的方式(如index.php或类似文件)声明此常量,但必须在项目的根目录中声明:
define('PROJECT_ROOT_PATH', __DIR__);
那么您的include调用应该如下所示:
include_once (PROJECT_ROOT_PATH . '/Database/DBConnection.php');
(始终指定前导斜杠)
问题是,当前您的代码可能依赖于,因此您可能会得到一个意外的工作目录。您已经在include once中使用了相对路径。您可以在目录结构中验证一个目录是否可用并检查数据库文件夹,或者不尝试
include once(\uuuu DIR\uu./../Database/DBConnection.php'))
admin.php是否也包括在内?还是直接调用该文件?