php基于PDO实现功能强大的MYSQL封装类实例
网络编程 2021-07-05 08:23www.168986.cn编程入门
这篇文章主要介绍了php基于PDO实现功能强大的MYSQL封装类,结合完整实例形式分析了php基于pdo实现mysql数据库连接、增删改查、事务等操作的方法,需要的朋友可以参考下
本文实例讲述了php基于PDO实现功能强大的MYSQL封装类。分享给大家供大家参考,具体如下
class CPdo{ protected $_dsn = "mysql:host=localhost;dbname=test"; protected $_name = "root"; protected $_pass = ""; protected $_condition = array(); protected $pdo; protected $fetchAll; protected $query; protected $result; protected $num; protected $mode; protected $prepare; protected $row; protected $fetchAction; protected $beginTransaction; protected $rollback; protected $mit; protected $char; private static $get_mode; private static $get_fetch_action; / pdo construct / public function __construct($pconnect = false) { $this->_condition = array(PDO::ATTR_PERSISTENT => $pconnect); $this->pdo_connect(); } / pdo connect / private function pdo_connect() { try{ $this->pdo = new PDO($this->_dsn,$this->_name,$this->_pass,$this->_condition); } catch(Exception $e) { return $this->setExceptionError($e->getMessage(), $e->getline, $e->getFile); } } / self sql get value action / public function getValueBySelfCreateSql($sql, $fetchAction = "assoc",$mode = null) { $this->fetchAction = $this->fetchAction($fetchAction); $this->result = $this->setAttribute($sql, $this->fetchAction, $mode); $this->AllValue = $this->result->fetchAll(); return $this->AllValue; } / select condition can query / private function setAttribute($sql, $fetchAction, $mode) { $this->mode = self::getMode($mode); $this->fetchAction = self::fetchAction($fetchAction); $this->pdo->setAttribute(PDO::ATTR_CASE, $this->mode); $this->query = $this->base_query($sql); $this->query->setFetchMode($this->fetchAction); return $this->query; } / get mode action / private static function getMode($get_style){ switch($get_style) { case null: self::$get_mode = PDO::CASE_NATURAL; break; case true: self::$get_mode = PDO::CASE_UPPER; break; case false; self::$get_mode= PDO::CASE_LOWER; break; } return self::$get_mode; } / fetch value action / private static function fetchAction($fetchAction) { switch($fetchAction) { case "assoc": self::$get_fetch_action = PDO::FETCH_ASSOC; //asso array break; case "num": self::$get_fetch_action = PDO::FETCH_NUM; //num array break; case "object": self::$get_fetch_action = PDO::FETCH_OBJ; //object array break; case "both": self::$get_fetch_action = PDO::FETCH_BOTH; //assoc array and num array break; default: self::$get_fetch_action = PDO::FETCH_ASSOC; break; } return self::$get_fetch_action; } / get total num action / public function rowCount($sql) { $this->result = $this->base_query($sql); $this->num = $this->result->rowCount(); return $this->num; } / simple query and easy query action / public function query($table, $column = "",$condition = array(), $group = "",$order = "", $having = "", $startSet = "",$endSet = "",$fetchAction = "assoc",$params = null){ $sql = "select ".$column." from `".$table."` "; if ($condition != null) { foreach($condition as $key=>$value) { $where .= "$key = '$value' and "; } $sql .= "where $where"; $sql .= "1 = 1 "; } if ($group != "") { $sql .= "group by ".$group." "; } if ($order != "") { $sql .= " order by ".$order." "; } if ($having != "") { $sql .= "having '$having' "; } if ($startSet != "" && $endSet != "" && is_numeric($endSet) && is_numeric($startSet)) { $sql .= "limit $startSet,$endSet"; } $this->result = $this->getValueBySelfCreateSql($sql, $fetchAction, $params); return $this->result; } / execute delete update insert and so on action / public function exec($sql) { $this->result = $this->pdo->exec($sql); $substr = substr($sql, 0 ,6); if ($this->result) { return $this->suessful($substr); } else { return $this->fail($substr); } } / prepare action / public function prepare($sql) { $this->prepare = $this->pdo->prepare($sql); $this->setChars(); $this->prepare->execute(); while($this->rowz = $this->prepare->fetch()) { return $this->row; } } / USE transaction / public function transaction($sql) { $this->begin(); $this->result = $this->pdo->exec($sql); if ($this->result) { $this->mit(); } else { $this->rollback(); } } / start transaction / private function begin() { $this->beginTransaction = $this->pdo->beginTransaction(); return $this->beginTransaction; } / mit transaction / private function mit() { $this->mit = $this->pdo->mit(); return $this->mit; } / rollback transaction / private function rollback() { $this->rollback = $this->pdo->rollback(); return $this->rollback; } / base query / private function base_query($sql) { $this->setChars(); $this->query = $this->pdo->query($sql); return $this->query; } / set chars / private function setChars() { $this->char = $this->pdo->query("SET NAMES 'UTF8'"); return $this->char; } / process sucessful action / private function suessful($params){ return "The ".$params." action is suessful"; } / process fail action / private function fail($params){ return "The ".$params." action is fail"; } / process exception action / private function setExceptionError($getMessage, $getLine ,$getFile) { echo "Error message is ".$getMessage."<br /> The Error in ".$getLine." line <br /> This file dir on ".$getFile; exit(); } }
更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程