@kr_ilya

PDO подключение и ошибка Fatal error: require_once() что делать?

Решил в проекте использовать PDO.
На OS всего 2 файла.
1:
<?PHP

class db{
	private $link;
	public function __construct(){
		
	}	
		
	private function Connect(){
		$this->link = new PDO($dsn, $user, $pass, $opt);
	} 
	
	public function execut($sql){
		
	}

	public function query($sql){
		
	}
}

$config = require_once 'config.php';
print_r($config);
?>

Для теста вывожу массив с конфигом.
2:
<?PHP
return [
	'host' => 'localhost',
	'base' => '1111',
	'user' => 'root',
	'pass' => '11111',
	'charset' => 'utf-8'
 ];
?>

Вылазит это: Warning: require_once(config.php): failed to open stream: No such file or directory in E:\OSPanel\domains\test.ru\index.php on line 31

Fatal error: require_once(): Failed opening required 'config.php' (include_path='.;e:/ospanel/modules/php/PHP-7.2;e:/ospanel/modules/php/PHP-7.2/PEAR/pear') in E:\OSPanel\domains\test.ru\index.php on line 31

Что делать понятия не имею.
  • Вопрос задан
  • 275 просмотров
Решения вопроса 2
gobananas
@gobananas
finishhim.ru
1. Неверно указан путь к фаул config.php, он лежит не в этой директории, используйте проверку file_exist

2. По стандарту PSR запрещено писать код вне класса, у вас этот код написан вне db, перенесите его, например в конструктор класса
Ответ написан
eXcNightRider
@eXcNightRider
FullStack Web Developer | DevOps
Рабочий вариант:
config.php
class Config {
    public $database = [
  'host' => 'localhost',
  'base' => '1111',
  'user' => 'root',
  'pass' => '11111',
  'charset' => 'utf-8'
 ];
}

Файл с классом
Если нет автолоада, то перед объявлением класса поставьте require_once 'config.php';
class db{
  private $link;
  public function __construct(){
     $config = new Config();
            $this->config = $config->database;
  }
//etc	
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы