У меня небольшой класс базы данных, и я пытаюсь использовать PDO
для подключения к моей базе данных, но я получаю эту ошибку:
Неустранимая ошибка: Uncaught Error: Class 'app\ lib \ PDO 'не найден в /var/www/html/app/lib/DB.php:11
Я проверил, включен ли PDO
с использованием этого кода:
if ( extension_loaded('pdo_mysql') ) {
exit('yes');
}
И вывод "да".
Я также проверил мой php.ini
, и у меня есть эта строка (без полуколонны):
extension=pdo_mysql
Этомой DB.php
код:
namespace app\lib;
class DB{
private static $instance = null;
public $pdo;
private function __construct(){
try {
$this->pdo = new PDO('mysql:host=127.0.0.1;dbname=db', 'user', 'password');
} catch (PDOException $e) {
exit($e->getMessage());
}
}
public static function instance(){
if(!isset(self::$instance)){
self::$instance = new self();
}
return self::$instance;
}
}
А это мой файл автозагрузчика (init.php
):
define('DS', DIRECTORY_SEPARATOR);
spl_autoload_register(function($namespace){
$path = dirname(__FILE__) . DS . str_replace('\\', DS, $namespace . '.php');
if(file_exists($path)){
require_once $path;
}
});
Вот как я пытаюсь установить новый DB
соединение:
require_once 'init.php';
$db = app\lib\DB::instance();
PS: Pdo работает, если я не использую пространства имен и использую процедурный код:
try {
$pdo = new PDO('mysql:host=127.0.0.1;dbname=db',
'user', 'password');
} catch (PDOException $e) {
exit($e->getMessage());
}