您现在的位置是:门户> 编程语言> PHP

PHP封装的PDO数据库操作类实例
2020-11-04 57人围观 0条评论
简介这篇文章主要介绍了PHP封装的PDO数据库操作类,结合具体实例形式分析了php基于PDO针对数据库的增删改查、事务、批量添加等相关操作技巧,需要的朋友可以参考下

    本文实例讲述了PHP封装的PDO数据库操作类。分享给大家供大家参考,具体如下:

    allPrepare($sql, $query);
            if (!$data->isEmpty()) {
              $result = $data->data;
            }
          }
          return $result;
        }
        /**
         * 查询数据
         */
        public static function select_data ($dataName,$tableName,$where,$param=array(),$desc='') {
          $result = array();
          $query = array();
          $query_str = '1=1';
          $tmp = '';
          $str_arr = '';
          if (!empty($param)) {
            $str = '';
            foreach ($param as $val) {
              $str .= '`'.$val.'`,';
            }
            $str = substr($str,0,-1);
          }
          $str_arr = !empty($str) ? $str : '*';
          if ( !empty($where) ) {
            foreach ($where as $key => $value) {
              $tmp .= ' AND '.$key.'=:'.$key.'';
              $query[':'.$key] = $value;
            }
          }
          $query_str .= $tmp;
          if (!empty($desc)) {
            $query_str .= $desc;
          }
          $sql = "SELECT {$str_arr} FROM `".$tableName."` WHERE {$query_str} ";
          $query_data = Bj_PdoDB::factory($dataName)->allPrepare($sql, $query);
          if ( !$query_data->isEmpty() ) {
            $result = $query_data->data;
          }
          return $result;
        }
        /**
         * 批量添加信息
         */
        public static function insert_data($dataName,$tableName,$add_param){
          $flag = false;
          if (!empty($add_param)) {
            $fileds = array();
            $str = '';
            foreach($add_param as $k=>$val){
              $str .= '(';
              $i = 0;
              foreach ($val as $key=>$vl) {
                $fileds[$i] = '`'.$key.'`';
                $str .= "'".addslashes($vl)."',";
                $i++;
              }
              $str = substr($str,0,-1);
              $str .= '),';
            }
            $filed_str = implode(',',$fileds);
            $val_str = substr($str,0,-1);
            $sql = "INSERT INTO `".$tableName."` ({$filed_str}) VALUES {$val_str}";
            $ret = Bj_PdoDB::factory($dataName)->insertPrepare($sql);
            if ( !$ret->isEmpty() ) {
                $insertId = $ret->data;
                if($insertId > 0){
                  return $insertId;
                }
            }
          }
          return $flag;
        }
      /**
       * 删除数据
       */
      public static function delete_data ($dataName,$tableName,$id) {
        $query = array(':id' => $id);
        $sql = "DELETE FROM ". $tableName. " WHERE `id`=:id";
        $db_res = Bj_PdoDB::factory($dataName)->simplePrepare($sql,$query);
        return $db_res->data;
      }
      /**
       * 更新数据
       */
      public static function update_data ($dataName,$tableName,$id,$array) {
        $flag = false;
        if ( !empty($array) && !empty($id)) {
          $query = array(':id' => $id);
          $up_str = '';
          foreach($array as $key=>$val) {
            $query[':'.$key] = addslashes($val);
            $up_str .= '`'.$key.'`=:'.$key.',';
          }
          $up_str = substr($up_str,0,-1);
          $sql = "UPDATE `".$tableName."` SET ".$up_str." WHERE `id`=:id";
          $db_res = Bj_PdoDB::factory($dataName)->changePrepare($sql, $query);
          $flag = true;
        }
        return $flag;
      }
      /**
       * 事务
       */
      public static function transactionHandler($dataName,$type){
        switch ($type) {
          case 'begin':
            return Bj_PdoDB::factory($dataName)->beginTransaction();
            break;
          case 'commit':
            return Bj_PdoDb::factory($dataName)->commit();
            break;
          case 'rollback':
            return Bj_PdoDb::factory($dataName)->rollback();
            break;
          default :
            exit;
        }
      }
      /**
       * curl获取数据get
       */
      public static function curl_data ($curl_url){
        if (!empty($curl_url)) {
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $curl_url);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
          curl_setopt($ch, CURLOPT_HEADER, 0);
          $output = curl_exec($ch);
          curl_close($ch);
          return $output;
        }
        return false;
      }
      /**
       * curl提交数据
       */
      public static function curl_data_post ($ch_url,$param) {
        $result = array();
        if (!empty($ch_url) && !empty($param)) {
          $query_string = http_build_query($param);
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, $ch_url);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
          curl_setopt($ch, CURLOPT_POST,1);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string);
          curl_setopt($ch, CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded; charset=UTF-8"));
          $output = curl_exec($ch);
          curl_close($ch);
          $result = !empty($output) ? json_decode($output,true) : array();
        }
        return $result;
      }
    }
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

    希望本文所述对大家PHP程序设计有所帮助。

分享:

文章评论

    • wxpython 学习笔记 第一天
    • python文本数据处理学习笔记详解