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

开发技术 作者: 2024-08-17 02:50:01
这篇文章主要介绍了php基于PDO实现功能强大的MYSQL封装类,结合完整实例形式分析了php基于pdo实现mysql数据库连接、增删改查、事务等操作的方法,需要的朋友可以参考下

本文实例讲述了PHP基于PDO实现功能强大的MysqL封装类。分享给大家供大家参考,具体如下:

_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 = "",$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,$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,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(); } }

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《@L_404_2@》及《PHP常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_63553.html
php PDO MYSQL 封装类