中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

PDO數(shù)據(jù)庫操作類

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用
   
class HRDB{
    protected $pdo;
    protected $res;
    protected $config;
      
    /*構(gòu)造函數(shù)*/
    function __construct($config){
        $this->Config = $config;
        $this->connect();
    }
      
    /*數(shù)據(jù)庫連接*/
    public function connect(){
        $this->pdo = new PDO($this->Config['dsn'], $this->Config['name'], $this->Config['password']);
        $this->pdo->query('set names utf8;');
        //把結(jié)果序列化成stdClass
        //$this->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
        //自己寫代碼捕獲Exception
        $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
      
    /*數(shù)據(jù)庫關(guān)閉*/
    public function close(){
        $this->pdo = null;
    }
      
    public function query($sql){
        $res = $this->pdo->query($sql);
        if($res){
            $this->res = $res;
        }
    }
    public function exec($sql){
        $res = $this->pdo->exec($sql);
        if($res){
            $this->res = $res;
        }
    }
    public function fetchAll(){
        return $this->res->fetchAll();
    }
    public function fetch(){
        return $this->res->fetch();
    }
    public function fetchColumn(){
        return $this->res->fetchColumn();
    }
    public function lastInsertId(){
        return $this->res->lastInsertId();
    }
      
    /**
     * 參數(shù)說明
     * int              $debug      是否開啟調(diào)試,開啟則輸出sql語句
     *                              0   不開啟
     *                              1   開啟
     *                              2   開啟并終止程序
     * int              $mode       返回類型
     *                              0   返回多條記錄
     *                              1   返回單條記錄
     *                              2   返回行數(shù)
     * string/array     $table      數(shù)據(jù)庫表,兩種傳值模式
     *                              普通模式:
     *                              'tb_member, tb_money'
     *                              數(shù)組模式:
     *                              array('tb_member', 'tb_money')
     * string/array     $fields     需要查詢的數(shù)據(jù)庫字段,允許為空,默認(rèn)為查找全部,兩種傳值模式
     *                              普通模式:
     *                              'username, password'
     *                              數(shù)組模式:
     *                              array('username', 'password')
     * string/array     $sqlwhere   查詢條件,允許為空,兩種傳值模式
     *                              普通模式:
     *                              'and type = 1 and username like "%os%"'
     *                              數(shù)組模式:
     *                              array('type = 1', 'username like "%os%"')
     * string           $orderby    排序,默認(rèn)為id倒序
     */
    public function select($debug, $mode, $table, $fields="*", $sqlwhere="", $orderby="tbid desc"){
        //參數(shù)處理
        if(is_array($table)){
            $table = implode(', ', $table);
        }
        if(is_array($fields)){
            $fields = implode(', ', $fields);
        }
        if(is_array($sqlwhere)){
            $sqlwhere = ' and '.implode(' and ', $sqlwhere);
        }
        //數(shù)據(jù)庫操作
        if($debug === 0){
            if($mode === 2){
                $this->query("select count(tbid) from $table where 1=1 $sqlwhere");
                $return = $this->fetchColumn();
            }else if($mode === 1){
                $this->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
                $return = $this->fetch();
            }else{
                $this->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
                $return = $this->fetchAll();
            }
            return $return;
        }else{
            if($mode === 2){
                echo "select count(tbid) from $table where 1=1 $sqlwhere";
            }else if($mode === 1){
                echo "select $fields from $table where 1=1 $sqlwhere order by $orderby";
            }
            else{
                echo "select $fields from $table where 1=1 $sqlwhere order by $orderby";
            }
            if($debug === 2){
                exit;
            }
        }
    }
      
    /**
     * 參數(shù)說明
     * int              $debug      是否開啟調(diào)試,開啟則輸出sql語句
     *                              0   不開啟
     *                              1   開啟
     *                              2   開啟并終止程序
     * int              $mode       返回類型
     *                              0   無返回信息
     *                              1   返回執(zhí)行條目數(shù)
     *                              2   返回最后一次插入記錄的id
     * string/array     $table      數(shù)據(jù)庫表,兩種傳值模式
     *                              普通模式:
     *                              'tb_member, tb_money'
     *                              數(shù)組模式:
     *                              array('tb_member', 'tb_money')
     * string/array     $set        需要插入的字段及內(nèi)容,兩種傳值模式
     *                              普通模式:
     *                              'username = "test", type = 1, dt = now()'
     *                              數(shù)組模式:
     *                              array('username = "test"', 'type = 1', 'dt = now()')
     */
    public function insert($debug, $mode, $table, $set){
        //參數(shù)處理
        if(is_array($table)){
            $table = implode(', ', $table);
        }
        if(is_array($set)){
            $set = implode(', ', $set);
        }
        //數(shù)據(jù)庫操作
        if($debug === 0){
            if($mode === 2){
                $this->query("insert into $table set $set");
                $return = $this->lastInsertId();
            }else if($mode === 1){
                $this->exec("insert into $table set $set");
                $return = $this->res;
            }else{
                $this->query("insert into $table set $set");
                $return = NULL;
            }
            return $return;
        }else{
            echo "insert into $table set $set";
            if($debug === 2){
                exit;
            }
        }
    }
      
    /**
     * 參數(shù)說明
     * int              $debug      是否開啟調(diào)試,開啟則輸出sql語句
     *                              0   不開啟
     *                              1   開啟
     *                              2   開啟并終止程序
     * int              $mode       返回類型
     *                              0   無返回信息
     *                              1   返回執(zhí)行條目數(shù)
     * string           $table      數(shù)據(jù)庫表,兩種傳值模式
     *                              普通模式:
     *                              'tb_member, tb_money'
     *                              數(shù)組模式:
     *                              array('tb_member', 'tb_money')
     * string/array     $set        需要更新的字段及內(nèi)容,兩種傳值模式
     *                              普通模式:
     *                              'username = "test", type = 1, dt = now()'
     *                              數(shù)組模式:
     *                              array('username = "test"', 'type = 1', 'dt = now()')
     * string/array     $sqlwhere   修改條件,允許為空,兩種傳值模式
     *                              普通模式:
     *                              'and type = 1 and username like "%os%"'
     *                              數(shù)組模式:
     *                              array('type = 1', 'username like "%os%"')
     */
    public function update($debug, $mode, $table, $set, $sqlwhere=""){
        //參數(shù)處理
        if(is_array($table)){
            $table = implode(', ', $table);
        }
        if(is_array($set)){
            $set = implode(', ', $set);
        }
        if(is_array($sqlwhere)){
            $sqlwhere = ' and '.implode(' and ', $sqlwhere);
        }
        //數(shù)據(jù)庫操作
        if($debug === 0){
            if($mode === 1){
                $this->exec("update $table set $set where 1=1 $sqlwhere");
                $return = $this->res;
            }else{
                $this->query("update $table set $set where 1=1 $sqlwhere");
                $return = NULL;
            }
            return $return;
        }else{
            echo "update $table set $set where 1=1 $sqlwhere";
            if($debug === 2){
                exit;
            }
        }
    }
      
    /**
     * 參數(shù)說明
     * int              $debug      是否開啟調(diào)試,開啟則輸出sql語句
     *                              0   不開啟
     *                              1   開啟
     *                              2   開啟并終止程序
     * int              $mode       返回類型
     *                              0   無返回信息
     *                              1   返回執(zhí)行條目數(shù)
     * string           $table      數(shù)據(jù)庫表
     * string/array     $sqlwhere   刪除條件,允許為空,兩種傳值模式
     *                              普通模式:
     *                              'and type = 1 and username like "%os%"'
     *                              數(shù)組模式:
     *                              array('type = 1', 'username like "%os%"')
     */
    public function delete($debug, $mode, $table, $sqlwhere=""){
        //參數(shù)處理
        if(is_array($sqlwhere)){
            $sqlwhere = ' and '.implode(' and ', $sqlwhere);
        }
        //數(shù)據(jù)庫操作
        if($debug === 0){
            if($mode === 1){
                $this->exec("delete from $table where 1=1 $sqlwhere");
                $return = $this->res;
            }else{
                $this->query("delete from $table where 1=1 $sqlwhere");
                $return = NULL;
            }
            return $return;
        }else{
            echo "delete from $table where 1=1 $sqlwhere";
            if($debug === 2){
                exit;
            }
        }
    }
}

標(biāo)簽: 代碼 數(shù)據(jù)庫

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:php使用imagecopy()拼接圖片

下一篇:JS簡單的彈出層效果