Home  >  Article  >  php教程  >  PHP PDO优化数据库操作类 多数据库驱动类

PHP PDO优化数据库操作类 多数据库驱动类

WBOY
WBOYOriginal
2016-06-06 19:37:501149browse

就是做一下整理 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
<?php
/**
 * 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;
    }
}
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn