include_once(): 无法打开流: 没有这样的文件或目录 - PHP

Nis*_*ana 4 php mysql include-once

我试图用 php 制作一个简单的注册系统。我有一个名为 Admin 的类(在控制器文件夹内),它扩展了 DBConnection.php 类。管理类有一个让管理注册的注册方法,但在那里遇到了问题。在“include_once”处发生错误,错误显示“警告:include_once(../Database/DBConnection.php):无法打开流:C:\xampp\htdocs\WoodlandsAway\controller\Admin.php 中没有这样的文件或目录”第 15 行----- ' '警告:include_once(): 无法在 C:\xampp\htdocs 中打开 '../Database/DBConnection.php' 包含 (include_path='C:\xampp\php\PEAR') \WoodlandsAway\controller\Admin.php 第 15 行 ----- ''致命错误:在第 17 行 C:\xampp\htdocs\WoodlandsAway\controller\Admin.php 中找不到类“DBConnection”'

这是我的 include_once 代码

include_once ('../Database/DBConnection.php');
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹结构

--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;
}
Run Code Online (Sandbox Code Playgroud)

}

和管理.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);
}}
Run Code Online (Sandbox Code Playgroud)

小智 5

首先,我建议您声明一个代表项目根路径的常量。该常量必须以独特的方式声明,例如index.php或类似的方式,但在项目的根目录中:

define('PROJECT_ROOT_PATH', __DIR__);
Run Code Online (Sandbox Code Playgroud)

那么你的 include 调用应该如下所示:

include_once (PROJECT_ROOT_PATH . '/Database/DBConnection.php');
Run Code Online (Sandbox Code Playgroud)

(始终指定前导斜杠)

问题是当前您的代码可能依赖于工作目录,因此您可能会得到意外的工作目录。