适用于MVC的PHP简单数据库连接类

cgw*_*151 0 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;
        }
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

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

我测试了这段代码,这可以正常工作。但是我需要知道正确的方法。

请让我知道这是正确的方法。

You*_*nse 5

好吧,我认为这堂课根本没有意义。它太泄漏了,无法以这种方式使用,但是它却没有增加常规PDO类的好处。

如果没有用处的代码,也有很多问题:例如,您定义凭据三次,只能使用一次

错误报告也是无用和错误的。

我会做的这整个文件4个行

<?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);
Run Code Online (Sandbox Code Playgroud)

但是它将比您的系统更灵活,更防错。

  • 也许这里是解释如何通过 MVC 元素共享 $pdo 的地方 (3认同)