PHP PDO优化数据库操作类 多数据库驱动类
程序员文章站
2022-06-05 17:08:07
...
就是做一下整理 PHP PDO类操作。简化操作流程 更多内容 http://git.oschina.net/youkuiyuan/yky_test/blob/master/class/pdo.class.php 点击链接加入群【微信开发探讨群】:http://jq.qq.com/?_wv=1027gt;http://www.oschina.net/code/snippet_2276613_46605
就是做一下整理 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
'','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; } }