全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP封装的PDO数据库操作类实例

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

<?php
class DatabaseHandler {
    /**
     * sql语句查询
     */
    public static function query_data ($dataName,$sql,$query=array()) {
      $result = array();
      if (!empty($sql)) {
        $data = Bj_PdoDB::factory($dataName)->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程序设计有所帮助。


# PHP  # PDO  # 数据库  # 操作类  # php封装的pdo数据库操作工具类与用法示例  # PHP封装的数据库模型Model类完整示例【基于PDO】  # PHP用PDO如何封装简单易用的DB类详解  # php基于PDO实现功能强大的MYSQL封装类实例  # php封装pdo实例以及pdo长连接的优缺点总结  # 程序设计  # 操作技巧  # 相关内容  # 感兴趣  # 给大家  # 更多关于  # 所述  # 面向对象  # 讲述了  # foreach  # str  # str_arr  # key  # substr  # val  # tmp  # tableName  # select_data  # return  # query_str 


相关文章: 中山网站制作网页,中山新生登记系统登记流程?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  常州企业建站如何选择最佳模板?  已有域名如何快速搭建专属网站?  建站org新手必看:2024最新搭建流程与模板选择技巧  网站设计制作公司地址,网站建设比较好的公司都有哪些?  建站主机CVM配置优化、SEO策略与性能提升指南  网站制作报价单模板图片,小松挖机官方网站报价?  免费视频制作网站,更新又快又好的免费电影网站?  网站制作员失业,怎样查看自己网站的注册者?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  岳西云建站教程与模板下载_一站式快速建站系统操作指南  如何用5美元大硬盘VPS安全高效搭建个人网站?  建站之星代理如何优化在线客服效率?  建站之星安装步骤有哪些常见问题?  公司网站的制作公司,企业网站制作基本流程有哪些?  如何快速生成可下载的建站源码工具?  定制建站如何定义?其核心优势是什么?  如何自定义建站之星模板颜色并下载新样式?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  代购小票制作网站有哪些,购物小票的简要说明?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何选择美橙互联多站合一建站方案?  Swift中swift中的switch 语句  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  建站之星CMS五站合一模板配置与SEO优化指南  如何高效搭建专业期货交易平台网站?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Android自定义listview布局实现上拉加载下拉刷新功能  Thinkphp 中 distinct 的用法解析  建站之星如何快速更换网站模板?  微信小程序 五星评分(包括半颗星评分)实例代码  如何用低价快速搭建高质量网站?  C++中引用和指针有什么区别?(代码说明)  网站企业制作流程,用什么语言做企业网站比较好?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  为什么Go需要go mod文件_Go go mod文件作用说明  教学网站制作软件,学习*后期制作的网站有哪些?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  装修招标网站设计制作流程,装修招标流程?  建站之星导航如何优化提升用户体验?  如何在Ubuntu系统下快速搭建WordPress个人网站?  C#怎么创建控制台应用 C# Console App项目创建方法  建站之星安装后如何自定义网站颜色与字体?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。