欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php基于PDO實(shí)現(xiàn)功能強(qiáng)大的MYSQL封裝類(lèi)實(shí)例

 更新時(shí)間:2017年02月27日 11:28:05   作者:小炒花生米  
這篇文章主要介紹了php基于PDO實(shí)現(xiàn)功能強(qiáng)大的MYSQL封裝類(lèi),結(jié)合完整實(shí)例形式分析了php基于pdo實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)連接、增刪改查、事務(wù)等操作的方法,需要的朋友可以參考下

本文實(shí)例講述了php基于PDO實(shí)現(xiàn)功能強(qiáng)大的MYSQL封裝類(lèi)。分享給大家供大家參考,具體如下:

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."<br /> The Error in ".$getLine." line <br /> This file dir on ".$getFile;
  exit();
 }
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫(kù)技巧總結(jié)》、《php+Oracle數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《PHP+MongoDB數(shù)據(jù)庫(kù)操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 9條PHP編程小知識(shí)及易犯的小錯(cuò)誤

    9條PHP編程小知識(shí)及易犯的小錯(cuò)誤

    這篇文章主要介紹了9條PHP編程必備知識(shí),本文講解了變量聲明、解析錯(cuò)誤、常見(jiàn)的錯(cuò)誤、MySQL錯(cuò)誤、注意echo和print的區(qū)別、注意空字符串('')和NULL的區(qū)別、分清==(等于)和===(全等于)的區(qū)別等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • 克隆一個(gè)新項(xiàng)目的快捷方式

    克隆一個(gè)新項(xiàng)目的快捷方式

    本文小編為大家介紹,克隆或者說(shuō)另存為一個(gè)新項(xiàng)目的快捷方式。有需要的朋友可以參考一下
    2013-04-04
  • PHP 數(shù)組遍歷方法大全(foreach,list,each)

    PHP 數(shù)組遍歷方法大全(foreach,list,each)

    php下最靈活的東西都是數(shù)組,很多數(shù)據(jù)都是通過(guò)數(shù)組的方式顯示,這里整理下數(shù)組的遍歷方法,大家可以根據(jù)需要選用。
    2010-06-06
  • php中cookie實(shí)現(xiàn)二級(jí)域名可訪問(wèn)操作的方法

    php中cookie實(shí)現(xiàn)二級(jí)域名可訪問(wèn)操作的方法

    這篇文章主要介紹了php中cookie實(shí)現(xiàn)二級(jí)域名可訪問(wèn)操作的方法,對(duì)比了常用的setcookie函數(shù)用法,并給出了一個(gè)設(shè)置cookie的類(lèi)文件來(lái)實(shí)現(xiàn)這一功能,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-11-11
  • PHP獲取域名的方法和技巧

    PHP獲取域名的方法和技巧

    在Web開(kāi)發(fā)中,獲取域名相關(guān)信息,是一項(xiàng)必備的能力,而PHP天生地具有解析URI的能力,所以PHP獲取域名也變得非常簡(jiǎn)單,在這里整理了一些,PHP獲取域名的方法和技巧,需要的朋友可以參考下
    2023-08-08
  • PHP5的版本和PHP7之間的區(qū)別詳解

    PHP5的版本和PHP7之間的區(qū)別詳解

    PHP7相比與PHP5有比較大的調(diào)整,它們之間有很多區(qū)別,本篇博文將介紹PHP5和PHP7在底層調(diào)整和應(yīng)用層上的主要區(qū)別,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • php高性能日志系統(tǒng) seaslog 的安裝與使用方法分析

    php高性能日志系統(tǒng) seaslog 的安裝與使用方法分析

    這篇文章主要介紹了php高性能日志系統(tǒng) seaslog 的安裝與使用方法,結(jié)合實(shí)例形式分析了php日志系統(tǒng) seaslog 的安裝、配置、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • 深入PHP數(shù)據(jù)加密詳解

    深入PHP數(shù)據(jù)加密詳解

    本篇文章是對(duì)PHP數(shù)據(jù)加密進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php實(shí)現(xiàn)的XML操作(讀取)封裝類(lèi)完整實(shí)例

    php實(shí)現(xiàn)的XML操作(讀取)封裝類(lèi)完整實(shí)例

    這篇文章主要介紹了php實(shí)現(xiàn)的XML操作(讀取)封裝類(lèi),給出了xml格式文件示例,并結(jié)合完整實(shí)例形式分析了php遍歷讀取xml格式數(shù)據(jù)節(jié)點(diǎn)的相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • PHP中預(yù)定義的6種接口介紹

    PHP中預(yù)定義的6種接口介紹

    這篇文章主要介紹了PHP中預(yù)定義的6種接口介紹,本文講解了Traversable、Iterator、IteratorAggregate、ArrayAccess、Serializable、Closure,需要的朋友可以參考下
    2015-05-05

最新評(píng)論