• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例

    本文实例讲述了PHP封装类似thinkphp连贯操作数据库Db类与简单应用。分享给大家供大家参考,具体如下:

    ?php
    header("Content-Type:text/html;charset=utf-8");
    /**
     *php操作mysql的工具类
     */
    class Db{
      private $_db = null;//数据库连接句柄
      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'
          );//数据库配置
      /**
       * 构造函数,连接数据库
       */
      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("错误信息".mysqli_connect_error());
          }
          $this->_db = $db;
        }
      }
      /**
       * 获取所有数据
       *
       * @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;
      }
      /**
       * 实现查询操作
       *
       * @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;
      }
      /**
       * 执行sql语句
       *
       * @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("报错啦!br/>错误号:".$errors[0]['errno']."br/>SQL错误状态:".$errors[0]['sqlstate']."br/>错误信息:".$errors[0]['error']);
          die();
        }
        return $res;
      }
      /**
       * 插入数据
       *
       * @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;
      }
      /**
       * 更新数据
       *
       * @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;
      }
      /**
       * 删除数据
       *
       * @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());
    
    

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

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

    您可能感兴趣的文章:
    • PHP PDO预处理语句及事务的使用
    • PHP的PDO预处理语句与存储过程
    • php_pdo 预处理语句详解
    • PHP5中使用mysqli的prepare操作数据库的介绍
    • php pdo操作数据库示例
    • PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
    • PHP使用PDO操作数据库的乱码问题解决方法
    • PHP中使用匿名函数操作数据库的例子
    • PHP中的MYSQL常用函数(php下操作数据库必备)
    • php 使用预处理语句操作数据库
    上一篇:php封装的pdo数据库操作工具类与用法示例
    下一篇:Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例 PHP,封装,类似,thinkphp,连贯,