Я следую учебному пособию по созданию системы входа на основе ООП. Я сделал все правильно, но при создании pdo я получаю ошибку в файле DB.php в строке 15 . Невозможно выяснить причину этой ошибки. Застрял там некоторое время. Кто-нибудь может помочь мне с этой ошибкой. Код может выглядеть долго, но это кусок пирога для вас, я обещаю. Есть FOUR php-файлы ,не может понять, что может вызвать эту ошибку при создании объекта PDO
Файл 1.init.php содержит ингредиенты для создания нового объекта PDO().
2.config.php файл используется для получения данных из файла init.php, поскольку строка передается ему как ('mysql/host') и использует функцию explode() для извлечения данных из него.
Файл 2.DB.php используется для подключения к базе данных. Ошибка я получаю
DB.php файл:
class DB{
private $_instance=null;
private $pdo,
$query,
$error=false,
$results,
$count=0;
private function __construct(){
try{
$this->$pdo=new PDO('mysql:host='.Config::get('mysql/host').';dbname='.Config::get('mysql/db'),Config::get('mysql/user'),Config::get('mysql/password'));
}catch(PDOException as $e){
echo $e->getMessage();
}
}
public static function getInstance(){
if(!isset(self::$_instance)){
self::$_instance=new DB();
}
return self::$_instance;
}
}
файл config.php:
class Config{
public static function get($path){
if($path){
$config=$GLOBALS['config'];
$arr=explode('/',$path);
foreach($arr as $bit){
if(isset($config[$bit])){
$config=$config[$bit];
}
}
return $config;
}
}
}
init.php файл:
session_start();
$GLOBALS['config']=array(
'mysql'=>array(
'host' => 'localhost',
'db' => 'login',
'user' => 'root',
'password' => ''
)
);
spl_autoload_register(function($class){
require_once 'c:/xampp/htdocs/login/classes/'.$class.'.php';
});
require_once 'c:/xampp/htdocs/login/function/sanitize.php';
файл index.php:
require_once 'c:/xampp/htdocs/login/core/init.php';
DB::getInstance()->query('SELECT name FROM table WHERE id=1');
'catch (PDOException as $ e)' -> 'catch (PDOException $ e)' Почему вы используете 'as'?! здесь нет смысла (для получения дополнительной информации см. http://php.net/manual/en/language.exceptions.php) – Rizier123
Удалите 'as'. Это не псевдоним. –
На днях у меня будет псевдоним моего собственного @ Fred-ii- –