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

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP DB 数据库连接类定义与用法示例

    本文实例讲述了PHP DB 数据库连接类定义与用法。分享给大家供大家参考,具体如下:

    声明:

    近期观看了一节 PHP 消息队列视频,对于讲师WiconWang提供的代码,在此分享一下,希望能对爱学习的小伙伴有所帮助…

    ?php
    // 数据库连接类
    class DB{
     //私有的属性
     private static $dbcon=false;
     private $host;
     private $port;
     private $user;
     private $pass;
     private $db;
     private $charset;
     private $link;
     //私有的构造方法
     private function __construct(){
      $this->host = 'localhost';
      $this->port = '3306';
      $this->user = 'root';
      $this->pass = 'root';
      $this->db = 'imooc';
      $this->charset= 'utf8';
      //连接数据库
      $this->db_connect();
      //选择数据库
      $this->db_usedb();
      //设置字符集
      $this->db_charset();
      }
      //连接数据库
      private function db_connect(){
      $this->link=mysqli_connect($this->host.':'.$this->port,$this->user,$this->pass);
      if(!$this->link){
       echo "数据库连接失败br>";
       echo "错误编码".mysqli_errno($this->link)."br>";
       echo "错误信息".mysqli_error($this->link)."br>";
       exit;
      }
      }
      //设置字符集
      private function db_charset(){
       mysqli_query($this->link,"set names {$this->charset}");
      }
      //选择数据库
      private function db_usedb(){
       mysqli_query($this->link,"use {$this->db}");
      }
      //私有的克隆
      private function __clone(){
       die('clone is not allowed');
      }
      //公用的静态方法
      public static function getIntance(){
       if(self::$dbcon==false){
       self::$dbcon=new self;
       }
       return self::$dbcon;
      }
      //执行sql语句的方法
      public function query($sql){
       $res=mysqli_query($this->link,$sql);
       if(!$res){
       echo "sql语句执行失败br>";
       echo "错误编码是".mysqli_errno($this->link)."br>";
       echo "错误信息是".mysqli_error($this->link)."br>";
       }
       return $res;
      }
      //获得最后一条记录id
      public function getInsertid(){
       return mysqli_insert_id($this->link);
      }
      /**
      * 查询某个字段
      * @param
      * @return string or int
      */
      public function getOne($sql){
       $query=$this->query($sql);
       return mysqli_free_result($query);
      }
      //获取一行记录,return array 一维数组
      public function getRow($sql,$type="assoc"){
       $query=$this->query($sql);
       if(!in_array($type,array("assoc",'array',"row"))){
        die("mysqli_query error");
       }
       $funcname="mysqli_fetch_".$type;
       return $funcname($query);
      }
      //获取一条记录,前置条件通过资源获取一条记录
      public function getFormSource($query,$type="assoc"){
      if(!in_array($type,array("assoc","array","row")))
      {
       die("mysqli_query error");
      }
      $funcname="mysqli_fetch_".$type;
      return $funcname($query);
      }
      //获取多条数据,二维数组
      public function getAll($sql){
       $query=$this->query($sql);
       $list=array();
       while ($r=$this->getFormSource($query)) {
       $list[]=$r;
       }
       return $list;
      }
      public function selectAll($table,$where,$fields='*',$order='',$skip=0,$limit=1000)
      {
           if(is_array($where)){
              foreach ($where as $key => $val) {
                if (is_numeric($val)) {
                  $condition = $key.'='.$val;
                }else{
                  $condition = $key.'=\"'.$val.'\"';
                }
              }
           } else {
            $condition = $where;
           }
           if (!empty($order)) {
             $order = " order by ".$order;
           }
           $sql = "select $fields from $table where $condition $order limit $skip,$limit";
           $query = $this->query($sql);
           $list = array();
           while ($r= $this->getFormSource($query)) {
             $list[] = $r;
           }
           return $list;
      }
       /**
       * 定义添加数据的方法
       * @param string $table 表名
       * @param string orarray $data [数据]
       * @return int 最新添加的id
       */
       public function insert($table,$data){
       //遍历数组,得到每一个字段和字段的值
       $key_str='';
       $v_str='';
       foreach($data as $key=>$v){
       // if(empty($v)){
       //  die("error");
       // }
        //$key的值是每一个字段s一个字段所对应的值
        $key_str.=$key.',';
        $v_str.="'$v',";
       }
       $key_str=trim($key_str,',');
       $v_str=trim($v_str,',');
       //判断数据是否为空
       $sql="insert into $table ($key_str) values ($v_str)";
       $this->query($sql);
      //返回上一次增加操做产生ID值
       return $this->getInsertid();
      }
      /*
      * 删除一条数据方法
      * @param1 $table, $where=array('id'=>'1') 表名 条件
      * @return 受影响的行数
      */
      public function deleteOne($table, $where){
       if(is_array($where)){
        foreach ($where as $key => $val) {
         $condition = $key.'='.$val;
        }
       } else {
        $condition = $where;
       }
       $sql = "delete from $table where $condition";
       $this->query($sql);
       //返回受影响的行数
       return mysqli_affected_rows($this->link);
      }
      /*
      * 删除多条数据方法
      * @param1 $table, $where 表名 条件
      * @return 受影响的行数
      */
      public function deleteAll($table, $where){
       if(is_array($where)){
        foreach ($where as $key => $val) {
         if(is_array($val)){
          $condition = $key.' in ('.implode(',', $val) .')';
         } else {
          $condition = $key. '=' .$val;
         }
        }
       } else {
        $condition = $where;
       }
       $sql = "delete from $table where $condition";
       $this->query($sql);
       //返回受影响的行数
       return mysqli_affected_rows($this->link);
      }
      /**
      * [修改操作description]
      * @param [type] $table [表名]
      * @param [type] $data [数据]
      * @param [type] $where [条件]
      * @return [type]
      */
      public function update($table,$data,$where,$limit=0){
       //遍历数组,得到每一个字段和字段的值
       $str='';
      foreach($data as $key=>$v){
       $str.="$key='$v',";
      }
      $str=rtrim($str,',');
       if(is_array($where)){
        foreach ($where as $key => $val) {
         if(is_array($val)){
          $condition = $key.' in ('.implode(',', $val) .')';
         } else {
          $condition = $key. '=' .$val;
         }
        }
       } else {
        $condition = $where;
       }
        if (!empty($limit)) {
          $limit = " limit ".$limit;
        }else{
          $limit='';
        }
      //修改SQL语句
      $sql="update $table set $str where $condition $limit";
      $this->query($sql);
      //返回受影响的行数
      return mysqli_affected_rows($this->link);
      }
    }
    ?>
    
    

    使用方法

    $db = DB::getIntance();
    $insert_data = ['order_id'=>'10010','order_amount' = '200.00','status'=> 1];
    $res = $db->insert('order_info',$insert_data);
    
    

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

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

    您可能感兴趣的文章:
    • PHP中数据库单例模式的实现代码分享
    • PHP基于单例模式实现的数据库操作基类
    • PHP单例模式应用示例【多次连接数据库只实例化一次】
    • PHP实现HTML页面静态化的方法
    • PHP实现页面静态化的超简单方法
    • 使用ob系列函数实现PHP网站页面静态化
    • 详解php实现页面静态化原理
    • 利用php的ob缓存机制实现页面静态化方法
    • PHP实现的sqlite数据库连接类
    • php的mssql数据库连接类实例
    • PHP单例模式数据库连接类与页面静态化实现方法
    上一篇:PHP实现的杨辉三角求解算法分析
    下一篇:PHP添加PNG图片背景透明水印操作类定义与用法示例
  • 相关文章
  • 

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

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

    PHP DB 数据库连接类定义与用法示例 PHP,数据库,连接,类,定义,