Php 如何调试我的PDO数据库类?

Php 如何调试我的PDO数据库类?,php,oop,pdo,Php,Oop,Pdo,在远离PHP编码10年后,我重新开始学习教程。我发现事情已经改变了,PDO是连接MySQL的新标准 我设立了一些小项目。我正在尝试建立自己的类数据库,但事情变得很复杂,我不知道为什么 下面是我的数据库类: <?PHP $Db = new database; class database { ///////////// //Attributs// ///////////// private $db

在远离PHP编码10年后,我重新开始学习教程。我发现事情已经改变了,PDO是连接MySQL的新标准

我设立了一些小项目。我正在尝试建立自己的类数据库,但事情变得很复杂,我不知道为什么

下面是我的数据库类:

<?PHP

    $Db = new database; 

    class database
    {
        /////////////
        //Attributs//
        /////////////

        private $db_host;
        private $db_user;
        private $db_pass;
        private $db_name;
        private $bdd;

        /////////////////////
        // internal process//
        /////////////////////

        private function activateDB()
        {
            $this->checkList();
            $this->dbInitilisation();
            $this->dbConnection();
        }

        ////////////////////////
        //Check Websiteconfig//
        ////////////////////////

        private function checkList()
        {
            if(!file_exists('website-config.ini')){
                die('missing configuration file.');
            }
        }

        ///////////
        //Db init//
        ///////////

        private function dbInitilisation()
        {
            // Load config file for database connection info
            $config = parse_ini_file("website-config.ini");

            $this->db_host=$config['db_host'];
            $this->db_user=$config['db_login'];
            $this->db_pass=$config['db_password'];
            $this->db_name=$config['db_name'];
        }

        /////////////////
        //Db connection//
        /////////////////

        private function dbConnection()
        { 
            try
                {
                    $this->bdd = new PDO('mysql:host='.$this->db_host.';dbname='.$this->db_name.';charset=utf8', 'root', '');
                    $this->bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);             
                }
                catch (Exception $e)
                {
                    die('error '.$e);
                }
        }


        public function dbQuery($user_query, $parameters)
        {
            $this->activateDB();

            $query = $this->bdd->prepare($user_query);
            $query->execute($parameters);
            $query->fetch();
            return $query;

        }

    }
?>
当我没有使用pdo,并且像正常一样编写我的函数时,我得到了我想要的。现在,不再是了

有人知道我做错了什么吗?你对如何提高我的整体素质有何评论


PS:在来这里之前,我确实读了很多书(比如这里:(我认为我的问题可能是fetch的类型,但是,当不是在OOP中时,我的代码运行正常。)或者在这里,但这里给出的解决方案是继续使用其他人的代码库,不允许理解我到底做错了什么。

我有。给你:为什么你说你做错了什么-你有错误吗?是否有无声的失败?是的,失败是明显的-你试图抽象抽象-ra相信一个好主意。但我们都犯了那个错误:-)你的大方向是正确的。但执行情况并不是那么好。参考问题顶部链接的两个答案,以获得好的示例
$values[':user_id']='1';
$result=($Db->dbQuery('SELECT user_username FROM user WHERE user_id = :user_id',$values));
print_r($result);