php基于PDO实现功能强大的MYSQL封装类实例详解

墨辰丷
Freigeben: 2023-03-27 22:04:02
Original
2146 Leute haben es durchsucht

这篇文章主要介绍了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 $commit; 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->successful($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->commit(); } else { $this->rollback(); } } /** *start transaction */ private function begin() { $this->beginTransaction = $this->pdo->beginTransaction(); return $this->beginTransaction; } /** *commit transaction */ private function commit() { $this->commit = $this->pdo->commit(); return $this->commit; } /** *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 successful($params){ return "The ".$params." action is successful"; } /** *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."
The Error in ".$getLine." line
This file dir on ".$getFile; exit(); } }
Nach dem Login kopieren



以上就是本文的全部内容,希望对大家的学习有所帮助。


相关推荐:

php实现的XML操作(封装类完整实例解析

PHP实现的DES加密解密封装类完整的方法

php实现错误处理封装类的方法


Das obige ist der detaillierte Inhalt vonphp基于PDO实现功能强大的MYSQL封装类实例详解. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!