douxing6532 2015-04-07 07:00
浏览 50
已采纳

无法使用PDO连接到数据库

I am new in PHP programming trying to connect to database using PDO. But while doing getting error as:

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

please help." details are given blow. thanks in advance.

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

core/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';
 }
    )


 ?>

classes/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条回答 默认 最新

  • douxiong3245 2015-04-07 07:15
    关注

    It seems like your paths for autoloading your classes is wrong, please try the following:

    spl_autoload_register(function($class)
       {
    
    require_once '/../classes/' . $class . '.php';
     }
        )
    

    or please use an absolute path when requiring files, this will always ensure that your files will load.

    spl_autoload_register(function($class)
       {
    
    require_once __DIR__ .'/classes/' . $class . '.php';
     }
        )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,