Php 无法确定创建PDO对象时可能导致此错误的原因

Php 无法确定创建PDO对象时可能导致此错误的原因,php,pdo,Php,Pdo,我正在按照教程创建一个基于OOP的登录系统。我做了相应的一切,但在创建pdo时,我在第15行的DB.php文件中遇到了一个错误。无法找出这个错误的原因。已经在那里停留了一段时间。有人能帮我解决这个错误吗。代码可能看起来很长,但对你来说是小菜一碟承诺。有四个php文件 1.init.php文件包含创建新PDO对象的成分 2.config.php文件用于从init.php文件获取数据,字符串作为“mysql/host”类型传递给init.php文件,并使用explode函数从中提取数据 2.DB.p

我正在按照教程创建一个基于OOP的登录系统。我做了相应的一切,但在创建pdo时,我在第15行的DB.php文件中遇到了一个错误。无法找出这个错误的原因。已经在那里停留了一段时间。有人能帮我解决这个错误吗。代码可能看起来很长,但对你来说是小菜一碟承诺。有四个php文件

1.init.php文件包含创建新PDO对象的成分

2.config.php文件用于从init.php文件获取数据,字符串作为“mysql/host”类型传递给init.php文件,并使用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;
        }

    }
 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;
            }
        }
    }
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';
   require_once 'c:/xampp/htdocs/login/core/init.php'; 

  DB::getInstance()->query('SELECT name FROM table WHERE id=1');
Config.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;
        }

    }
 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;
            }
        }
    }
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';
   require_once 'c:/xampp/htdocs/login/core/init.php'; 

  DB::getInstance()->query('SELECT name FROM table WHERE id=1');
init.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;
        }

    }
 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;
            }
        }
    }
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';
   require_once 'c:/xampp/htdocs/login/core/init.php'; 

  DB::getInstance()->query('SELECT name FROM table WHERE id=1');
index.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;
        }

    }
 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;
            }
        }
    }
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';
   require_once 'c:/xampp/htdocs/login/core/init.php'; 

  DB::getInstance()->query('SELECT name FROM table WHERE id=1');

您的错误消息是一个分析错误。这意味着PHP解释器/处理器/程序试图读取您的文件,但发现语法错误,不得不停止。如果按照错误消息查看DB.php的第15行

}catch(PDOException as $e){
你会发现问题的。这不是有效的PHP语法-您可能需要

}catch(PDOException $e){

它的PDOException位是异常处理代码的类类型提示-不需要使用as。

catchPDOException as$e->catchPDOException$e为什么要使用as?!此处没有任何意义有关详细信息,请参阅:删除as。这不是一个别名。总有一天我会有一个自己的别名@Fred-ii-我想,去掉as什么都没做;对的那么,我们现在在哪里;我的狗正等着我把它带到外面去追赶,天知道会发生什么。哦,你来了@AL-zami欢迎回来。你给我们都弄了一杯好咖啡吗?你可能刚从某个小酒馆回来;-一个好的苹果丹麦人会很甜蜜。OP没有回应我们的任何评论,所以也许他们会听你的-@弗雷德二世-哈,我没注意到上面有这个。我的一般互联网政策是忽略评论:我检查了你们在评论区留下的所有甜言蜜语。难怪蚂蚁突然攻击我的显示器;p@AlanStorm哦谢谢你宝贵的回答。它为我的个人资料增加了两个更有价值的名声;