include_once():无法打开流:没有这样的文件或目录 - PHP
include_once(): failed to open stream: No such file or directory - PHP
我试图在 php 中制作一个简单的注册系统。我有一个名为 Admin(在控制器文件夹内)的 class,它扩展了 DBConnection.php class。管理员 class 有一个允许管理员注册的注册方法,但在那里遇到了问题。 'include_once' 处发生错误,错误提示为“警告:include_once(../Database/DBConnection.php):无法打开流:C:[= 中没有此类文件或目录36=].php 第 15 行 -----
'
'Warning: include_once(): Failed opening '../Database/DBConnection.php' 用于在 C:\xampp\htdocs\WoodlandsAway\controller\Admin.php 线上包含 (include_path='C:\xampp\php\PEAR') 15-----
'
'致命错误:Class 'DBConnection' 未在第 17 行的 C:\xampp\htdocs\WoodlandsAway\controller\Admin.php 中找到'
这是我的 include_once 代码
include_once ('../Database/DBConnection.php');
And here is my folder structure
--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_once (PROJECT_ROOT_PATH . '/Database/DBConnection.php');
(始终指定前导斜杠)
问题是目前您的代码可能依赖于 Working directory 因此您可能会得到一个意外的工作目录。
我试图在 php 中制作一个简单的注册系统。我有一个名为 Admin(在控制器文件夹内)的 class,它扩展了 DBConnection.php class。管理员 class 有一个允许管理员注册的注册方法,但在那里遇到了问题。 'include_once' 处发生错误,错误提示为“警告:include_once(../Database/DBConnection.php):无法打开流:C:[= 中没有此类文件或目录36=].php 第 15 行 ----- ' 'Warning: include_once(): Failed opening '../Database/DBConnection.php' 用于在 C:\xampp\htdocs\WoodlandsAway\controller\Admin.php 线上包含 (include_path='C:\xampp\php\PEAR') 15----- ' '致命错误:Class 'DBConnection' 未在第 17 行的 C:\xampp\htdocs\WoodlandsAway\controller\Admin.php 中找到'
这是我的 include_once 代码
include_once ('../Database/DBConnection.php');
And here is my folder structure
--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_once (PROJECT_ROOT_PATH . '/Database/DBConnection.php');
(始终指定前导斜杠)
问题是目前您的代码可能依赖于 Working directory 因此您可能会得到一个意外的工作目录。