2015-04-07 2 views
0

Я новичок в программировании на PHP, пытаясь подключиться к базе данных с помощью PDO. Но при этом получаю ошибку как:Не удается подключиться к базе данных с помощью PDO

"Class 'DB' not found in D:\xampp\htdocs\web\oop\index.php on line 5"

пожалуйста, помогите «подробности приведены удар заранее спасибо

config.php

<?php 
    class Config{ 
    public static function get($path = null) 
    { 
    if($path){ 
     $config = $GLOBALS['config']; 
     $path = explode('/', $path); 

     foreach($path as $bit) 
     { 
      if(isset($config[$bit])) 
      { 
       $config = $config[$bit]; 
      } 
     } 
     return $config; 
    } 
      } 
     } 
     ?> 

ядро ​​/ init.php...

 require_once 'functions/sanitize.php'; 

    $GLOBALS['config'] = array(
    'mysql' => array(
    'host'=> '127.0.0.1', 
    'username' => 'root', 
    'password' => '', 
    'db' => 'oop' 
    ), 
'remember' => array(
    'cookie_name' => 'hash', 
    'cookie_expiry' => 604800 
    ), 
'session' => array(
    'session_name' => 'user' 
    ) 
); 


    spl_autoload_register(function($class) 
    { 

require_once 'classes/' . $class . '.php'; 
} 
    ) 


?> 

классов/DB.php

 <?php 
    namespace application\libs; 
    use POD; 
    class DB 
    { 

     private static $_instance = null; 
     private $_pdo, 
       $_query, 
       $_error = false, 
       $_results, 
       $_count = 0; 


     private function __construct() 
     { 
      try{ 
       $this->_pdo = new POD('mysql:host=' . 
       Config::get('mysql/host') . ';dbname=' . 
       Config::get('mysql/db'), Config::get('mysql/username'), 
        Config::get('mysql/password')); 
      }catch(PDOException $e){ 
       die($e->getMessage()); 

      } 
     } 


     public static function getInstance() 
     { 
      if(!isset(self::$_instance)){ 
       self::$_instance = new DB(); 
      } 

      return self::$_instance; 
     } 


    } 



    ?> 

index.php

<?php 
     require_once 'core/init.php'; 
     DB::getInstance(); 
    ?> 
+1

try \ application \ libs \ DB :: getInstance(); –

+0

Попробуйте $ this -> _ pdo = new POD ('mysql: host ='. Config :: get ('mysql/host'). '; Username ='. Config :: get ('mysql/username'). '; пароль =»Config :: получить. ('MySQL/пароль'). '; имя_бд =' (MySQL/дб '). 'Config :: получить.';'); –

+0

кажется, что ваш автозагрузчик не может найти ваши классы, вам нужно попробовать и отладить раздел автозагрузки, попробуйте повторить свой параметр '$ class', который вы получаете, и посмотрите, какой путь он отправляет – Fadey

ответ

0

Похоже, ваши пути для самозарядных классов неправильно, пожалуйста, попробуйте следующее:

spl_autoload_register(function($class) 
    { 

require_once '/../classes/' . $class . '.php'; 
} 
    ) 

или используйте абсолютный путь при запросе файлов, это всегда гарантирует, что ваши файлы будут загружены.

spl_autoload_register(function($class) 
    { 

require_once __DIR__ .'/classes/' . $class . '.php'; 
} 
    ) 
+0

Привет, Fadey спасибо за ответ, но с первым ответом, получающим ту же самую ошибку, что и" Class' DB ', не найденный в D: \ xampp \ htdocs \ web \ oop \ index.php в строке 5 "и со вторым ответом, получающим еще одну большую ошибку, будет очень мило, если вы сможете дать лучшую идею. – Tapash

+0

@Tapash вы должны точно знать, где находится файл, прежде чем он вам понадобится, я не могу вам помочь, не зная структуры проекта, поэтому вы представляете нам свою структуру или можете попытаться понять, как требовать от вас классы – Fadey

Смежные вопросы