就是做一下整理 PHP PDO类操作。简化操作流程
更多内容
http://git.oschina.net/youkuiyuan/yky_test/blob/master/class/pdo.class.php
点击链接加入群【微信开发探讨群】:http://jq.qq.com/?_wv=1027&k=csNcd9
群号:330393916
欢迎浏览:www.zcstrong.com
QQ:2444756311
微信红包接口API - 拓展微信公众平台通用接口API(PHP版) --> http://www.oschina.net/code/snippet_2276613_46605
1.[代码]PDO优化类
/**
* Description of pdo
*
* @author Administrator
*/
class ZcPdo {
public $dbh = ""; //全局连接Object;
//public $sth = ""; //预处理参数
private $dsn = "";
private $user = "";
private $password = "";
public $returnAy = array('errcode' => '','errmsg' => '');
//构造函数 - 初始化连接
public function __construct($dsn, $user, $password) {
$this->dsn = $dsn;
$this->user = $user;
$this->password = $password;
$this->pdoConnect();
}
private function pdoConnect(){
try {
$this->dbh = new PDO($this->dsn, $this->user, $this->password);
return $this->dbh;
}
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
exit();
}
}
//设置PDO参数
public function zcAttribute($attribute, $value){
$this->dbh->setAttribute($attribute, $value);
}
public function zcLastId($name = NULL){
return $this->dbh->lastInsertId($name);
}
//数据库单语句执行操作
public function zcExec($param) {
try {
$rows = $this->dbh->exec($param);//影响行数
return $this->zcLog(TRUE, $rows);
}
catch (PDOException $e) {
return $this->zcLog(FALSE, $e->getMessage());
}
}
//格式化数据
public function zcQuote($string){
return $this->dbh->quote($string);
}
//批量处理格式化数据
public function zcBatchQuote($data){
$result = "";
if(!empty($data) && (is_array($data) || is_object($data))){
foreach($data as $key => $value){
if(!empty($value) && (is_array($value) || is_object($value))){
$result[$key] = $this->zcBatchQuote($value);
}
else{
$result[$key] = $this->zcQuote($value);
}
}
}
else {
$result = $this->zcQuote($data);
}
return $result;
}
//数据库预处理操作 - 获取全部数据
public function zcFetchAll($statement ,$parameter = NULL ,$type = PDO::FETCH_ASSOC){
try{
$sth = $this->dbh->prepare($statement);
//$sth->execute($parameter);
$sth->execute($this->zcBatchQuote($parameter));
$result = $sth->fetchAll($type);
if(!empty($result) && is_array($result)){
return $this->zcLog(TRUE, $result);
}
else{
return $this->zcLog(TRUE, NULL);
}
}
catch (PDOException $e) {
return $this->zcLog(FALSE, $e->getMessage());
}
}
//数据库预处理操作 - 获取一行数据
public function zcFetchRow($statement ,$parameter = NULL ,$type = PDO::FETCH_ASSOC){
try{
$sth = $this->dbh->prepare($statement);
$sth->execute($this->zcBatchQuote($parameter));
$result = $sth->fetch($type);
if(!empty($result) && is_array($result)){
return $this->zcLog(TRUE, $result);
}
else{
return $this->zcLog(TRUE, NULL);
}
}
catch (PDOException $e) {
return $this->zcLog(FALSE, $e->getMessage());
}
}
//数据库预处理操作 - 获取一个数据
public function zcFetchOne($statement ,$parameter = NULL){
try{
$sth = $this->dbh->prepare($statement);
$sth->execute($this->zcBatchQuote($parameter));
$result = $sth->fetch(PDO::FETCH_NUM);
if(!empty($result) && is_array($result)){
return $this->zcLog(TRUE, $result[0]);
}
else{
return $this->zcLog(TRUE, NULL);
}
}
catch (PDOException $e) {
return $this->zcLog(FALSE, $e->getMessage());
}
}
//开始事务
public function zcBegin(){
$this->dbh->beginTransaction();
}
//提交事务
public function zcCommit(){
$this->dbh->commit();
}
//回滚事务
public function zcRollBack(){
$this->dbh->rollBack();
}
//预处理事务执行语句
public function zcPtmTstQuery($statement ,$parameter = NULL){
try{
$this->zcBegin();
$result = $this->dbh->prepare($statement)->execute($parameter);
$this->zcCommit();
return $this->zcLog(TRUE, $result);
}
catch (PDOException $e) {
$this->zcRollBack();
return $this->zcLog(FALSE, $e->getMessage());
}
}
//预处理执行语句
public function zcPtmQuery($statement ,$parameter = NULL){
try{
$result = $this->dbh->prepare($statement)->execute($parameter);
return $this->zcLog(TRUE, $result);
}
catch (PDOException $e) {
return $this->zcLog(FALSE, $e->getMessage());
}
}
//Query执行
public function zcQuery($statement,$type = PDO::FETCH_ASSOC){
try{
$result = $this->dbh->query($statement,$type);
return $this->zcLog(TRUE, $result);
}
catch (PDOException $e) {
return $this->zcLog(FALSE, $e->getMessage());
}
}
//日志LOG
public function zcLog($errcode , $errmsg){
$this->returnAy = array();
$this->returnAy['errcode'] = $errcode;
$this->returnAy['errmsg'] = $errmsg;
$this->returnAy['errtime'] = date("Y-m-d H:i:s",time());
return $this->returnAy;
}
}