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

时间:2017-05-04 19:08:39

标签: php oop pdo

在远离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;

        }

    }
?>

,以下是我的称呼方式:

$values[':user_id']='1';
$result=($Db->dbQuery('SELECT user_username FROM user WHERE user_id = :user_id',$values));
print_r($result);

当我没有使用pdo,并且正常地编写我的功能时,我得到了我想要的东西。现在,不再了。

有没有人知道我做错了什么?你对如何改进我的整体内容有什么评论吗?

PS:我来之前读过这里(就像这里:http://php.net/manual/fr/pdostatement.fetch.php(我认为我的问题可能是提取的类型,但是再次,当不在OOP时,我的代码运行正常。 )或者PHP: Database Connection Class Constructor Method,但这里的解决方案是继续使用其他代码库,而不是让我理解我实际上做错了什么。

0 个答案:

没有答案