php基于PDO实现功能强大的MYSQL封装类实例
本文实例讲述了php基于PDO实现功能强大的MYSQL封装类。分享给大家供大家参考,具体如下:
classCPdo{ 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; privatestatic$get_mode; privatestatic$get_fetch_action; /** *pdoconstruct */ publicfunction__construct($pconnect=false){ $this->_condition=array(PDO::ATTR_PERSISTENT=>$pconnect); $this->pdo_connect(); } /** *pdoconnect */ privatefunctionpdo_connect(){ try{ $this->pdo=newPDO($this->_dsn,$this->_name,$this->_pass,$this->_condition); } catch(Exception$e){ return$this->setExceptionError($e->getMessage(),$e->getline,$e->getFile); } } /** *selfsqlgetvalueaction */ publicfunctiongetValueBySelfCreateSql($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; } /** *selectconditioncanquery */ privatefunctionsetAttribute($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; } /** *getmodeaction */ privatestaticfunctiongetMode($get_style){ switch($get_style){ casenull: self::$get_mode=PDO::CASE_NATURAL; break; casetrue: self::$get_mode=PDO::CASE_UPPER; break; casefalse; self::$get_mode=PDO::CASE_LOWER; break; } returnself::$get_mode; } /** *fetchvalueaction */ privatestaticfunctionfetchAction($fetchAction){ switch($fetchAction){ case"assoc": self::$get_fetch_action=PDO::FETCH_ASSOC;//assoarray break; case"num": self::$get_fetch_action=PDO::FETCH_NUM;//numarray break; case"object": self::$get_fetch_action=PDO::FETCH_OBJ;//objectarray break; case"both": self::$get_fetch_action=PDO::FETCH_BOTH;//assocarrayandnumarray break; default: self::$get_fetch_action=PDO::FETCH_ASSOC; break; } returnself::$get_fetch_action; } /** *gettotalnumaction */ publicfunctionrowCount($sql){ $this->result=$this->base_query($sql); $this->num=$this->result->rowCount(); return$this->num; } /* *simplequeryandeasyqueryaction */ publicfunctionquery($table,$column="*",$condition=array(),$group="",$order="",$having="",$startSet="",$endSet="",$fetchAction="assoc",$params=null){ $sql="select".$column."from`".$table."`"; if($condition!=null){ foreach($conditionas$key=>$value){ $where.="$key='$value'and"; } $sql.="where$where"; $sql.="1=1"; } if($group!=""){ $sql.="groupby".$group.""; } if($order!=""){ $sql.="orderby".$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; } /** *executedeleteupdateinsertandsoonaction */ publicfunctionexec($sql){ $this->result=$this->pdo->exec($sql); $substr=substr($sql,0,6); if($this->result){ return$this->successful($substr); }else{ return$this->fail($substr); } } /** *prepareaction */ publicfunctionprepare($sql){ $this->prepare=$this->pdo->prepare($sql); $this->setChars(); $this->prepare->execute(); while($this->rowz=$this->prepare->fetch()){ return$this->row; } } /** *USEtransaction */ publicfunctiontransaction($sql){ $this->begin(); $this->result=$this->pdo->exec($sql); if($this->result){ $this->commit(); }else{ $this->rollback(); } } /** *starttransaction */ privatefunctionbegin(){ $this->beginTransaction=$this->pdo->beginTransaction(); return$this->beginTransaction; } /** *committransaction */ privatefunctioncommit(){ $this->commit=$this->pdo->commit(); return$this->commit; } /** *rollbacktransaction */ privatefunctionrollback(){ $this->rollback=$this->pdo->rollback(); return$this->rollback; } /** *basequery */ privatefunctionbase_query($sql){ $this->setChars(); $this->query=$this->pdo->query($sql); return$this->query; } /** *setchars */ privatefunctionsetChars(){ $this->char=$this->pdo->query("SETNAMES'UTF8'"); return$this->char; } /** *processsucessfulaction */ privatefunctionsuccessful($params){ return"The".$params."actionissuccessful"; } /** *processfailaction */ privatefunctionfail($params){ return"The".$params."actionisfail"; } /** *processexceptionaction */ privatefunctionsetExceptionError($getMessage,$getLine,$getFile){ echo"Errormessageis".$getMessage."<br/>TheErrorin".$getLine."line<br/>Thisfilediron".$getFile; exit(); } }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。