mysql — include_once (): не удалось открыть поток: нет такого файла или каталога

Я пытался сделать простую систему регистрации в php. У меня есть класс с именем Admin (внутри папки контроллера), который расширяет класс DBConnection.php. В классе администратора есть метод регистрации, позволяющий разрешить регистрацию, но возникла проблема. Ошибка происходит в «include_once», а ошибка говорит: «Предупреждение: include_once (../ Database / DBConnection.php): не удалось открыть поток: нет такого файла или каталога в C: \ xampp \ htdocs \ WoodlandsAway \ controller \ Admin.php on строка 15 ——

‘Предупреждение: include_once (): не удалось открыть’ ../Database/DBConnection.php ‘для включения (include_path =’ C: \ xampp \ php \ PEAR ‘) в C: \ xampp \ htdocs \ WoodlandsAway \ controller \ Admin.php на линии 15 ——

«Неустранимая ошибка: класс« DBConnection »не найден в C: \ xampp \ htdocs \ WoodlandsAway \ controller \ Admin.php в строке 17»

вот мой код include_once

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);
}}

2

Решение

Во-первых, я предлагаю вам объявить константу, которая представляет корневой путь вашего проекта. Эта константа должна быть объявлена ​​уникальным способом, например index.php или аналогичным, но в корне вашего проекта:

define('PROJECT_ROOT_PATH', __DIR__);

Тогда ваш вызов include должен выглядеть так:

include_once (PROJECT_ROOT_PATH . '/Database/DBConnection.php');

(Всегда указывайте начальный слеш)

Проблема в том, что в настоящее время ваш код может полагаться на Рабочий каталог так что вы, вероятно, получите неожиданный рабочий каталог.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]