用于MVC的PHP简单DB连接类

时间:2013-10-02 14:47:08

标签: php mysql pdo

我为简单的MVC模式构建了新的数据库连接类。

我需要知道这是正确的方法。

<?php

include_once 'config.php';

class dbModel{
    private $dbSys      = "";
    private $dbHost     = "";
    private $dbUser     = "";
    private $dbPass     = "";
    private $dbName     = "";
    private con = false;

    public function __construct(){
        $this->dbSys    = DB_SYS;
        $this->dbHost   = DB_HOST;
        $this->dbUser   = DB_USER;
        $this->dbPass   = DB_PASS;
        $this->dbName   = DB_NAME;

        if (!$this->con){
            try{
                $this->con = new PDO($this->dbSys.':host='.$this->dbHost.';dbname='.$this->dbName, $this->dbUser, $this->dbPass);
                return $this->con;
            } catch (PDOException $e){
                echo $e->getMessage();
                exit();
            }
        }else{
            return $this->con;
        }
    }
}
?>

我将 config.php 文件作为单独的文件包含在数据库配置中。 我正在我的项目中的其他模型中的此数据库连接类中创建新对象,并编写sql并运行查询。

我测试了这段代码,这是有效的。但我需要知道这种方式与否。

请告诉我这是正确的方法。

1 个答案:

答案 0 :(得分:5)

嗯,我觉得这个课程完全没有意义。以这种方式使用它是一个过于漏洞的抽象,但它没有增加普通PDO类的好处。

如果无用的代码,还有一个糟糕的地方:例如,您将凭据定义三次,仅使用一次

错误报告也没用,也错了。

我只创建四个行的整个文件

<?php
include_once 'config.php'
$pdo = new PDO(DB_SYS.':host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

但它比你的更灵活,更容易出错。