亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP封裝的數據庫模型Model類完整示例【基于PDO】

2024-05-05 00:07:26
字體:
來源:轉載
供稿:網友

本文實例講述了PHP封裝的數據庫模型Model類。分享給大家供大家參考,具體如下:

<?php    //引入配置文件    include "../Config/config.php";    class Model extends PDO    {        protected $tableName = "";//存儲表名        protected $sql = "";//存儲最后執行的SQL語句        protected $limit = "";//存儲limit條件        protected $order = "";//存儲order排序條件        protected $field = "*";//存儲要查詢的字段        protected $where = "";//存儲where條件        protected $allFields = [];//存儲當前表的所有字段        /**         * 構造方法 初始化         * @param string $tableName 要操作的表名         */        public function __construct($tableName)        {            //連接數據庫            parent::__construct('mysql:host='.HOST.';dbname='.DB.';charset=utf8;port='.PORT,USER,PWD);            //存儲表名            $this->tableName = PRE.$tableName;            //獲取當前數據表中有哪些字段            $this->getFields();        }        /**         * 獲取當前表的所有字段     * @return array 成功則返回一維數組字段         */        public function getFields()        {            //查看當前表結構            $sql = "desc {$this->tableName}";            $res = $this->query($sql);//返回pdo對象          //var_dump($res);            if ($res) {                $arr = $res->fetchAll(2);                //var_dump($arr);                //從二維數組中取出指定下標的列                $this->allFields =    array_column($arr,"Field");                return $this->allFields;            } else {                die("表名錯誤");            }        }        /**         * 添加操作         * @param array $data 要添加的數組         * @return int 返回受影響行數         */        public function add($data)        {            //判斷是否是數組            if (!is_array($data)) {                    return $this;            }            //判斷是否全是非法字段            if (empty($data)) {                    die("非法字段");            }            //過濾非法字段            foreach($data as $k => $v){                if (!in_array($k,$this->allFields)) {                    unset($data[$k]);                }            }            //將數組中的鍵取出            $keys = array_keys($data);            //將數組中取出的鍵轉為字符串拼接            $key = implode(",",$keys);            //將數組中的值轉化為字符串拼接            $value = implode("','",$data);            //準備SQL語句            $sql = "insert into {$this->tableName} ({$key}) values('{$value}')";            $this->sql = $sql;            //執行并發送SQL,返回受影響行數            return (int)$this->exec($sql);        }        /**         * 刪除操作         * @param string $id 要刪除的id         * @return int 返回受影響行數         */        public function delete($id="")        {            //判斷id是否存在            if (empty($id)) {                $where = $this->where;            }else{                $where = "where id={$id}";            }            $sql = "delete from {$this->tableName} {$where}";      $this->sql = $sql;            //執行并發送SQL,返回受影響行數            return (int)$this->exec($sql);        }    /**     * 修改操作     * @param array $data 要修改的數組     * @return int 返回受影響行數     */    public function update($data)    {      //判斷是否是數組      if (!is_array($data)){        return $this;      }      //判斷是否全是非法字段      if (empty($data)) {        die('全是非法字段');      }      $str = "";      //過濾非法字段      foreach ($data as $k=>$v) {        //字段為id時,判斷id是否存在的        if ($k == "id"){          $this->where = "where id={$v}";          unset($data[$k]);          continue;        }        //若字段不為id,則過濾后再拼接成set字段        if (in_array($k, $this->allFields)) {          $str .= "{$k}='{$v}',";        } else {          unset($data[$k]);        }      }      //判斷是否傳了條件      if (empty($this->where)) {        die('請傳入修改條件');      }      //去除右邊的,      $str = rtrim($str, ',');      $sql = "update {$this->tableName} set {$str} {$this->where}";      //echo $sql;      $this->sql = $sql;      return (int)$this->exec($sql);    }    /**     * 查詢多條數據     * @return array 成功返回二維數組,失敗返回空數組     */        public function select()    {          $sql = "select {$this->field} from {$this->tableName} {$this->where} {$this->order} {$this->limit}";      $this->sql = $sql;      //執行SQL,結果集是一個對象          $res = $this->query($sql);          //判斷是否查詢成功,      if ($res){        //成功返回二維數組        return $res->fetchAll(2);      }      //失敗返回空數組      return [];    }    /**     * 查詢一條數組     * @param string $id 要查詢的id     * @return array 返回一條數據     */    public function find($id="")    {      //判斷是否存在id      if (empty($id)){        $where = $this->where;      }else{        $where = "where id={$id}";      }          $sql = "select {$this->field} from {$this->tableName} {$where} {$this->order} limit 1";      $this->sql = $sql;      //執行sql,結果集為對象      $res = $this->query($sql);      //判斷是否查詢成功      if ($res){        //成功則返回一條數據(一維數組)        $result = $res->fetchAll(2);        return $result[0];      }      //失敗返回空數組      return [];    }    /**     * 統計總數目     * @return int 返回總數     */    public function count()    {      $sql = "select count(*) as total from {$this->tableName} {$this->where} limit 1";      $this->sql = $sql;      //執行SQL,結果集為對象      $res = $this->query($sql);      //處理結果集      if ($res){       $result = $res->fetchAll(2);       //var_dump($result);        return $result[0]["total"];      }      return 0;    }    /**     * 設置要查詢的字段信息     * @param string $field 要查詢的字段     * @return object 返回自己,保證連貫操作     */    public function field($field)    {      //判斷字段是否存在      if (empty($filed)){        return $this;      }      $this->field = $field;      return $this;    }    /**     * 獲取最后執行的sql語句     * @return string sql語句     */    public function _sql()    {      return $this->sql;    }    /**     * where條件     * @param string $where 要輸入的where條件     * @return object 返回自己,保證連貫操作     */    public function where($where)    {      $this->where = "where ".$where;      return $this;    }    /**     * order條件     * @param string $order 要輸入的order條件     * @return object 返回自己,保證連貫操作     */    public function order($order)    {      $this->order = "order by ".$order;      return $this;    }    /**     * limit條件     * @param string $limit 要輸入的limit條件     * @return object 返回自己,保證連貫操作     */    public function limit($limit)    {      $this->limit = "limit ".$limit;      return $this;    }}

 

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产美女精品视频免费观看| 亚洲男人第一网站| 欧美日在线观看| 在线电影中文日韩| 精品久久中文字幕| 亚洲xxxx18| 日韩美女av在线免费观看| 中文字幕国产日韩| 57pao成人永久免费视频| 国产激情久久久久| 国产成人97精品免费看片| 日韩国产欧美精品在线| 欧美激情一区二区三区高清视频| 国产日韩欧美在线看| 国产成人精品av| 隔壁老王国产在线精品| 亚洲天堂av在线播放| 国产精品视频一区二区三区四| 亚洲精品wwwww| 亚洲黄页网在线观看| 亚洲电影免费观看高清完整版在线观看| 亚洲成人av在线播放| 国产精品一区二区性色av| 成人国产亚洲精品a区天堂华泰| 欧美亚洲视频在线看网址| 亚洲国产精品久久久久秋霞蜜臀| 国产日韩欧美中文在线播放| 欧美日韩一区二区在线播放| 亚洲国内精品视频| 亚洲精品在线视频| 欧日韩不卡在线视频| 69精品小视频| 成人国产精品一区二区| 久久影视免费观看| 亚洲欧美资源在线| 久久精品欧美视频| 一本一本久久a久久精品综合小说| 欧美成人午夜免费视在线看片| 亚洲视频电影图片偷拍一区| 国产成人久久精品| 2019中文字幕在线| 欧美老女人性生活| 日本欧美黄网站| 久久视频中文字幕| 国产不卡视频在线| 亚洲精品自在久久| 欧美日韩国产成人| 亚洲天堂久久av| 亚洲色图激情小说| 日韩成人高清在线| 中文字幕亚洲欧美日韩2019| 亚洲人成网站免费播放| 在线观看中文字幕亚洲| 国产精品久久电影观看| 日韩欧美精品中文字幕| 欧美日韩一区免费| 亚洲va男人天堂| 亚洲男女自偷自拍图片另类| 成人福利视频网| 乱亲女秽乱长久久久| 亚洲第一精品夜夜躁人人躁| 中文字幕av一区二区三区谷原希美| 日本精品免费一区二区三区| 国产一区视频在线播放| 亚洲一区二区精品| 国产精品偷伦视频免费观看国产| 亚洲第五色综合网| 国产精品高潮呻吟视频| 亚洲午夜未满十八勿入免费观看全集| 在线播放精品一区二区三区| 久久亚洲影音av资源网| 午夜精品一区二区三区在线| 亚洲社区在线观看| 视频在线一区二区| 亚洲高清久久久久久| 成人性生交大片免费看视频直播| 午夜精品一区二区三区在线视频| 亚洲美女动态图120秒| 亚洲第一在线视频| 成人乱人伦精品视频在线观看| 亚洲精品有码在线| 亚洲天堂男人天堂女人天堂| 性色av一区二区三区红粉影视| 日韩一区在线视频| 亚洲一级黄色片| 国产999精品视频| 欧美国产一区二区三区| 日韩精品在线观看一区| 日韩成人在线视频网站| 亚洲性生活视频在线观看| 欧美高清无遮挡| 精品国产一区二区三区四区在线观看| 久久久综合av| 91精品国产色综合久久不卡98口| 成人a级免费视频| 国产男女猛烈无遮挡91| 国产成人精品a视频一区www| 久久免费精品日本久久中文字幕| 久久视频免费在线播放| 亚洲福利精品在线| 亚洲福利小视频| 国产精品视频精品视频| 91精品国产综合久久香蕉最新版| 欧美巨大黑人极品精男| 日韩美女视频免费看| 亚洲自拍高清视频网站| 日韩欧美在线视频免费观看| 亚洲精品成a人在线观看| 欧美精品激情视频| 日韩在线欧美在线国产在线| 久久全球大尺度高清视频| 午夜精品国产精品大乳美女| 国产一区二区三区精品久久久| 91精品国产99| 成人国产精品免费视频| 国产精品尤物福利片在线观看| 欧美性少妇18aaaa视频| 欧美—级高清免费播放| 亚洲国产精品久久久| 久久欧美在线电影| 日韩综合视频在线观看| 日韩中文字幕在线播放| 日韩美女av在线| 精品久久久久久亚洲国产300| 亚洲自拍小视频| www.美女亚洲精品| 在线亚洲午夜片av大片| 成人黄色网免费| 欧美性猛交xxxx偷拍洗澡| 日韩精品视频免费在线观看| 色妞久久福利网| 在线视频日韩精品| 久久精品国产欧美激情| 久久精彩免费视频| 久久影视电视剧免费网站清宫辞电视| 午夜精品国产精品大乳美女| 性夜试看影院91社区| 日韩欧美精品网站| 中文日韩在线观看| 久久久久国产精品www| 一区二区欧美在线| 欧美激情国产日韩精品一区18| 欧美日韩在线视频一区| 亚洲第一视频网站| 性色av一区二区三区| 色婷婷综合久久久久| 久久精品视频免费播放| 精品久久久久久中文字幕大豆网| 久久久日本电影| 亚洲精品国产精品国产自| 国产成人精品免高潮在线观看| 久久国产精品久久久久久| 欧美裸体xxxx极品少妇| 国产欧美在线观看| 国产精品国内视频| 1769国内精品视频在线播放| 亚洲欧美激情在线视频| 国产一区二区日韩精品欧美精品| 正在播放欧美一区| 69av在线视频| 98午夜经典影视| 国产精品久久久久久久电影| 国内精品久久影院| 97av在线视频免费播放|