php数据库操作类的调用优化,PHP PDO优化数据库操作类 多数据库驱动类
就是做一下整理 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;
}
}
總結
以上是生活随笔為你收集整理的php数据库操作类的调用优化,PHP PDO优化数据库操作类 多数据库驱动类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鬼谷八荒怎么招纳天骄
- 下一篇: 北京环球影城如何预约