pdo mysql 封装类_一个MYSQL PDO相对完整且功能强大的封装类

//自己写的一个PDO类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;/**

*pdo construct*/publicfunction__construct($pconnect=false) {$this->_condition=array(PDO::ATTR_PERSISTENT=>$pconnect);$this->pdo_connect();

}/**

*pdo connect*/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);

}

}/**

*self sql get value action*/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;

}/**

*select condition can query*/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;

}/**

*get mode action*/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;

}/**

*fetch value action*/privatestaticfunctionfetchAction($fetchAction) {switch($fetchAction) {case"assoc":self::$get_fetch_action=PDO::FETCH_ASSOC;//asso arraybreak;case"num":self::$get_fetch_action=PDO::FETCH_NUM;//num arraybreak;case"object":self::$get_fetch_action=PDO::FETCH_OBJ;//object arraybreak;case"both":self::$get_fetch_action=PDO::FETCH_BOTH;//assoc array and num arraybreak;default:self::$get_fetch_action=PDO::FETCH_ASSOC;break;

}returnself::$get_fetch_action;

}/**

*get total num action*/publicfunctionrowCount($sql) {$this->result=$this->base_query($sql);$this->num=$this->result->rowCount();return$this->num;

}/**simple query and easy query action*/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.="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*/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);

}

}/**

*prepare action*/publicfunctionprepare($sql) {$this->prepare=$this->pdo->prepare($sql);$this->setChars();$this->prepare->execute();while($this->rowz=$this->prepare->fetch()) {return$this->row;

}

}/**

*USE transaction*/publicfunctiontransaction($sql) {$this->begin();$this->result=$this->pdo->exec($sql);if($this->result) {$this->commit();

}else{$this->rollback();

}

}/**

*start transaction*/privatefunctionbegin() {$this->beginTransaction=$this->pdo->beginTransaction();return$this->beginTransaction;

}/**

*commit transaction*/privatefunctioncommit() {$this->commit=$this->pdo->commit();return$this->commit;

}/**

*rollback transaction*/privatefunctionrollback() {$this->rollback=$this->pdo->rollback();return$this->rollback;

}/**

*base query*/privatefunctionbase_query($sql) {$this->setChars();$this->query=$this->pdo->query($sql);return$this->query;

}/**

*set chars*/privatefunctionsetChars() {$this->char=$this->pdo->query("SET NAMES 'UTF8'");return$this->char;

}/**

*process sucessful action*/privatefunctionsuccessful($params){return"The".$params."action is successful";

}/**

*process fail action*/privatefunctionfail($params){return"The".$params."action is fail";

}/**

*process exception action*/privatefunctionsetExceptionError($getMessage,$getLine,$getFile) {echo"Error message is".$getMessage."
 The Error in".$getLine."line 
 This file dir on".$getFile;exit();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值