Maison > développement back-end > tutoriel php > Introduction pertinente à la classe d'opérations de base de données PDO encapsulée en PHP

Introduction pertinente à la classe d'opérations de base de données PDO encapsulée en PHP

巴扎黑
Libérer: 2023-03-14 22:22:01
original
1084 Les gens l'ont consulté

Cet article présente principalement la classe d'opérations de base de données PDO encapsulée par PHP et analyse les compétences opérationnelles associées à l'ajout, à la suppression, à la modification, à la transaction, à l'ajout de lots de bases de données basées sur PDO, sur la base d'exemples spécifiques auxquels les amis dans le besoin peuvent se référer. it

L'exemple de cet article décrit la classe d'opération de base de données PDO encapsulée par PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :


<?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=&#39;&#39;) {
      $result = array();
      $query = array();
      $query_str = &#39;1=1&#39;;
      $tmp = &#39;&#39;;
      $str_arr = &#39;&#39;;
      if (!empty($param)) {
        $str = &#39;&#39;;
        foreach ($param as $val) {
          $str .= &#39;`&#39;.$val.&#39;`,&#39;;
        }
        $str = substr($str,0,-1);
      }
      $str_arr = !empty($str) ? $str : &#39;*&#39;;
      if ( !empty($where) ) {
        foreach ($where as $key => $value) {
          $tmp .= &#39; AND &#39;.$key.&#39;=:&#39;.$key.&#39;&#39;;
          $query[&#39;:&#39;.$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 = &#39;&#39;;
        foreach($add_param as $k=>$val){
          $str .= &#39;(&#39;;
          $i = 0;
          foreach ($val as $key=>$vl) {
            $fileds[$i] = &#39;`&#39;.$key.&#39;`&#39;;
            $str .= "&#39;".addslashes($vl)."&#39;,";
            $i++;
          }
          $str = substr($str,0,-1);
          $str .= &#39;),&#39;;
        }
        $filed_str = implode(&#39;,&#39;,$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(&#39;:id&#39; => $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(&#39;:id&#39; => $id);
      $up_str = &#39;&#39;;
      foreach($array as $key=>$val) {
        $query[&#39;:&#39;.$key] = addslashes($val);
        $up_str .= &#39;`&#39;.$key.&#39;`=:&#39;.$key.&#39;,&#39;;
      }
      $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 &#39;begin&#39;:
        return Bj_PdoDB::factory($dataName)->beginTransaction();
        break;
      case &#39;commit&#39;:
        return Bj_PdoDb::factory($dataName)->commit();
        break;
      case &#39;rollback&#39;:
        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;
  }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal