濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫(kù)Db類與簡(jiǎn)單應(yīng)用示例

PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫(kù)Db類與簡(jiǎn)單應(yīng)用示例

熱門標(biāo)簽:抖音有個(gè)地圖標(biāo)注是什么意思 阿里云400電話申請(qǐng)加工單 智能電話機(jī)器人排名前十名南京 西區(qū)企業(yè)怎么做地圖標(biāo)注入駐 九江外呼系統(tǒng) 七魚外呼系統(tǒng)停用嗎 海南人工外呼系統(tǒng)有效果嗎 保定crm外呼系統(tǒng)運(yùn)營(yíng)商 地下城堡2圖九地圖標(biāo)注

本文實(shí)例講述了PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫(kù)Db類與簡(jiǎn)單應(yīng)用。分享給大家供大家參考,具體如下:

?php
header("Content-Type:text/html;charset=utf-8");
/**
 *php操作mysql的工具類
 */
class Db{
  private $_db = null;//數(shù)據(jù)庫(kù)連接句柄
  private $_table = null;//表名
  private $_where = null;//where條件
  private $_order = null;//order排序
  private $_limit = null;//limit限定查詢
  private $_group = null;//group分組
  private $_configs = array(
        'hostname' => 'localhost',
        'dbname'  => 'test',
        'username' => 'root',
        'password' => '1234'
      );//數(shù)據(jù)庫(kù)配置
  /**
   * 構(gòu)造函數(shù),連接數(shù)據(jù)庫(kù)
   */
  public function __construct(){
    $link = $this->_db;
    if(!$link){
      $db = mysqli_connect($this->_configs['hostname'],$this->_configs['username'],$this->_configs['password'],$this->_configs['dbname']);
      mysqli_query($db,"set names utf8");
      if(!$db){
        $this->ShowException("錯(cuò)誤信息".mysqli_connect_error());
      }
      $this->_db = $db;
    }
  }
  /**
   * 獲取所有數(shù)據(jù)
   *
   * @param   type>  $table The table
   *
   * @return   boolean All.
   */
  public function getAll($table=null){
    $link = $this->_db;
    if(!$link)return false;
    $sql = "SELECT * FROM {$table}";
    $data = mysqli_fetch_all($this->execute($sql));
    return $data;
  }
  public function table($table){
    $this->_table = $table;
    return $this;
  }
  /**
   * 實(shí)現(xiàn)查詢操作
   *
   * @param   string  $fields The fields
   *
   * @return   boolean ( description_of_the_return_value )
   */
  public function select($fields="*"){
    $fieldsStr = '';
    $link = $this->_db;
    if(!$link)return false;
    if(is_array($fields)){
      $fieldsStr = implode(',', $fields);
    }elseif(is_string($fields)!empty($fields)){
      $fieldsStr = $fields;
    }
    $sql = "SELECT {$fields} FROM {$this->_table} {$this->_where} {$this->_order} {$this->_limit}";
    $data = mysqli_fetch_all($this->execute($sql));
    return $data;
  }
  /**
   * order排序
   *
   * @param   string  $order The order
   *
   * @return   boolean ( description_of_the_return_value )
   */
  public function order($order=''){
    $orderStr = '';
    $link = $this->_db;
    if(!$link)return false;
    if(is_string($order)!empty($order)){
      $orderStr = "ORDER BY ".$order;
    }
    $this->_order = $orderStr;
    return $this;
  }
  /**
   * where條件
   *
   * @param   string $where The where
   *
   * @return   type> ( description_of_the_return_value )
   */
  public function where($where=''){
    $whereStr = '';
    $link = $this->_db;
    if(!$link)return $link;
    if(is_array($where)){
      foreach ($where as $key => $value) {
        if($value == end($where)){
          $whereStr .= "`".$key."` = '".$value."'";
        }else{
          $whereStr .= "`".$key."` = '".$value."' AND ";
        }
      }
      $whereStr = "WHERE ".$whereStr;
    }elseif(is_string($where)!empty($where)){
      $whereStr = "WHERE ".$where;
    }
    $this->_where = $whereStr;
    return $this;
  }
  /**
   * group分組
   *
   * @param   string  $group The group
   *
   * @return   boolean ( description_of_the_return_value )
   */
  public function group($group=''){
    $groupStr = '';
    $link = $this->_db;
    if(!$link)return false;
    if(is_array($group)){
      $groupStr = "GROUP BY ".implode(',',$group);
    }elseif(is_string($group)!empty($group)){
      $groupStr = "GROUP BY ".$group;
    }
    $this->_group = $groupStr;
    return $this;
  }
  /**
   * limit限定查詢
   *
   * @param   string $limit The limit
   *
   * @return   type> ( description_of_the_return_value )
   */
  public function limit($limit=''){
    $limitStr = '';
    $link = $this->_db;
    if(!$link)return $link;
    if(is_string($limit)||!empty($limit)){
      $limitStr = "LIMIT ".$limit;
    }elseif(is_numeric($limit)){
      $limitStr = "LIMIT ".$limit;
    }
    $this->_limit = $limitStr;
    return $this;
  }
  /**
   * 執(zhí)行sql語(yǔ)句
   *
   * @param   type>  $sql  The sql
   *
   * @return   boolean ( description_of_the_return_value )
   */
  public function execute($sql=null){
    $link = $this->_db;
    if(!$link)return false;
    $res = mysqli_query($this->_db,$sql);
    if(!$res){
      $errors = mysqli_error_list($this->_db);
      $this->ShowException("報(bào)錯(cuò)啦!br/>錯(cuò)誤號(hào):".$errors[0]['errno']."br/>SQL錯(cuò)誤狀態(tài):".$errors[0]['sqlstate']."br/>錯(cuò)誤信息:".$errors[0]['error']);
      die();
    }
    return $res;
  }
  /**
   * 插入數(shù)據(jù)
   *
   * @param   type>  $data  The data
   *
   * @return   boolean ( description_of_the_return_value )
   */
  public function insert($data){
    $link = $this->_db;
    if(!$link)return false;
    if(is_array($data)){
      $keys = '';
      $values = '';
      foreach ($data as $key => $value) {
        $keys .= "`".$key."`,";
        $values .= "'".$value."',";
      }
      $keys = rtrim($keys,',');
      $values = rtrim($values,',');
    }
    $sql = "INSERT INTO `{$this->_table}`({$keys}) VALUES({$values})";
    mysqli_query($this->_db,$sql);
    $insertId = mysqli_insert_id($this->_db);
    return $insertId;
  }
  /**
   * 更新數(shù)據(jù)
   *
   * @param   type> $data  The data
   *
   * @return   type> ( description_of_the_return_value )
   */
  public function update($data){
    $link = $this->_db;
    if(!$link)return $link;
    if(is_array($data)){
      $dataStr = '';
      foreach ($data as $key => $value) {
        $dataStr .= "`".$key."`='".$value."',";
      }
      $dataStr = rtrim($dataStr,',');
    }
    $sql = "UPDATE `{$this->_table}` SET {$dataStr} {$this->_where} {$this->_order} {$this->_limit}";
    $res = $this->execute($sql);
    return $res;
  }
  /**
   * 刪除數(shù)據(jù)
   *
   * @return   type> ( description_of_the_return_value )
   */
  public function delete(){
    $link = $this->_db;
    if(!$link)return $link;
    $sql = "DELETE FROM `{$this->_table}` {$this->_where}";
    $res = $this->execute($sql);
    return $res;
  }
  /**
   * 異常信息輸出
   *
   * @param   type> $var  The variable
   */
  private function ShowException($var){
    if(is_bool($var)){
      var_dump($var);
    }else if(is_null($var)){
      var_dump(NULL);
    }else{
      echo "pre style='position:relative;z-index:1000;padding:10px;border-radius:5px;background:#F5F5F5;border:1px solid #aaa;font-size:14px;line-height:18px;opacity:0.9;'>".print_r($var,true)."/pre>";
    }
  }
}
$db = new Db();
//查詢操作
var_dump($db->table('user')->where('id > 2')->order('id desc')->limit('2,4')->select());
//插入操作
var_dump($db->table('user')->insert(array('username'=>'user','password'=>'pwd')));
//更新操作
var_dump($db->table('user')->where('id = 1')->update(array('username'=>'user1','password'=>'pwd1')));
//刪除操作
var_dump($db->table('user')->where('id = 1')->delete());

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+mysqli數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP PDO預(yù)處理語(yǔ)句及事務(wù)的使用
  • PHP的PDO預(yù)處理語(yǔ)句與存儲(chǔ)過(guò)程
  • php_pdo 預(yù)處理語(yǔ)句詳解
  • PHP5中使用mysqli的prepare操作數(shù)據(jù)庫(kù)的介紹
  • php pdo操作數(shù)據(jù)庫(kù)示例
  • PHP入門教程之使用Mysqli操作數(shù)據(jù)庫(kù)的方法(連接,查詢,事務(wù)回滾等)
  • PHP使用PDO操作數(shù)據(jù)庫(kù)的亂碼問(wèn)題解決方法
  • PHP中使用匿名函數(shù)操作數(shù)據(jù)庫(kù)的例子
  • PHP中的MYSQL常用函數(shù)(php下操作數(shù)據(jù)庫(kù)必備)
  • php 使用預(yù)處理語(yǔ)句操作數(shù)據(jù)庫(kù)

標(biāo)簽:十堰 梅河口 韶關(guān) 遼陽(yáng) 涼山 九江 甘肅 昭通

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫(kù)Db類與簡(jiǎn)單應(yīng)用示例》,本文關(guān)鍵詞  PHP,封裝,類似,thinkphp,連貫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫(kù)Db類與簡(jiǎn)單應(yīng)用示例》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫(kù)Db類與簡(jiǎn)單應(yīng)用示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    沁水县| 嘉义市| 吉首市| 特克斯县| 嘉义县| 慈溪市| 西吉县| 开封市| 介休市| 鄂托克前旗| 上栗县| 青海省| 长泰县| 河间市| 平阴县| 札达县| 上杭县| 三台县| 普定县| 呼伦贝尔市| 灌南县| 万安县| 阆中市| 康乐县| 阿鲁科尔沁旗| 恩施市| 射阳县| 集贤县| 香港| 达日县| 沾益县| 无为县| 红桥区| 电白县| 乌拉特中旗| 宁武县| 湖州市| 清新县| 綦江县| 城固县| 府谷县|