• 框架数据连接类


    class db{
         /**
          * 定义数据库连接
          */
        /**
         * return 返回一个值叫做链式调用
         *每执行完一个方法就会返回当前对象
         *返回的对象 可以调用类中的成员变量和成员方法
         */
        protected $mysqli; //连接工具
         
        protected $table;  //数据表
        
        protected $opt;  //存储条件
        
         function  __construct($table_name){  //定义一个数据库连接
              
                $this->config($table_name);
            
        }
         protected function config($table_name){
             
                $this->mysqli=new mysqli(HOST, USER, PWD, DBBASE);
                $this->table=$table_name;  //表名
                if(mysqli_connect_errno()){
                    
                      echo "数据库连接错误".mysqli_connect_erron();
                      exit();
                    
                }
                $this->mysqli->query("set names 'latin1'");
                $this->opt['filed']="*"; //设置默认查询字段
                $this->opt['where']=$this->opt['limit']=$this->opt['order']=$this->opt['group']=' '; //设置他们的条件都为空
              }
              
              /**
               * 获取表的字段
               */
              function fileds(){
                    $result=$this->mysqli->query("DESC{$this->table}"); //查询表结构
                    $filedsarray=array();
                    while ($rows=$result->fetch_assoc()!=false){ //循环字段关联数组
                                        $filedsarray[]=$rows['Field'];
                        
          }
                        return $filedsarray;
          }
          /**
           * 查询表的字段 
           * 
           */
          function filed($filed){
                /*首先$filed就是字段 查询的字段 首先判断获取的字段是否是字符串
                 * 
                 */
              if (is_string($filed)){
                  
                   $filedarry=explode(",", $filed);  /*分割字符串*/
              }else{
                    $filedarry=$filed;
                      }
              if(is_array($filedarry)){
                  $filed="";
                  foreach ($filedarry as $v){
                      $filed .= "`" . $v . "`" . ",";
                  }
               }
               return rtrim($filed,",");
      }
      /**
       * 条件方法where
       */
      function where($where){
           if(is_string($where)){
                 $this->opt['where']="WHERE".$where;
           }else{
               $this->opt['where']="";
           }
           return $this;
       }
       /**
        * limit 条件
        */
       
       function limit($limit){
           if(is_string($limit)){
               $this->opt['limit']="LIMIT".$limit;
           }else{
               $this->opt['limit']="";
               
           }
           return $this;
       }
       /**
        * order by 条件
        */
       function order($order){
             if (is_string($order)){
                 $this->opt['order']="ORDER BY".$order;
             }else{
                 $this->opt['order']="";
             }
             return $this;
        }
        
        /**
         * group by 调教
        */
        function group($group){
            if (is_string($group)){
                $this->opt['group']="GROUP BY".$group;
            }else{
                $this->opt['group']="";
            }
            return $this;
        }
          /**
           * select语句查询
           */
        function select(){
            /**
             * $sql=select * from 表名 where limiy order by group by
             */
            $sql="SELECT {$this->opt['filed']} FROM {$this->table} {$this->opt['where']}{$this->opt['order']}{$this->opt['group']}{$this->opt['limit']}";
            
            return $this->sql($sql);
         }
         /**
          * delete 删除语句
          */
         function delate($id=""){
             if($id==""&&empty($this->opt['where'])) die ("获取的查询条件不能为空");
             if($id!=""){
                if(is_array($id)){
                     $id=implode(",",$id);/*implode 将获取的数组分割成字符串 每分割一个加个逗号*/
                 }
                 $this->opt['where']="WHERE id IN(".$id.")";
             }
             /*delete from 表名 where 条件*/
             $sql="DELETE FROM {$this->table} {$this->opt['where']} {$this->opt['limit']}";
             echo $sql."<br/>";
             return $this->query($sql);
          }
          /**
           * 返回sql语句结果集
           */
        function sql($sql) {
            $result = $this->mysqli
            ->query ( $sql ) or die ( $this->dbError () );
            $resultArr = array ();
            while ( ($row = $result->fetch_assoc ()) != false ) {
                $resultArr [] = $row;
            }
            return $resultArr;
        }
          /**
           * insert语句
           */
          function insert($ins){
              is_array($ins) or die("非法数组");
              $fileds=$this->filed(array_keys($ins));
         var_dump($fileds);
              $values=$this->values(array_values($ins));
              var_dump($values);
              $sql="INSERT INTO {$this->table}(".$fileds.") VALUES(".$values.")";
              if($this->query($sql)>0){
                  return $this->mysqli->insert_id;
              }
          }
          /**
           * 将数组转换字符串并进行转义
           */
          protected function values($value){
              if (!get_magic_quotes_gpc()){
                  $str="";
                  foreach ($value as $v){
                      $str.="'".addslashes($v)."',";
                  }
              }else{
                  foreach ($value as $v){
                  $str.="'.$v.',";
                  }
              }
              return rtrim($str,",");
          }
          /**
           * 没有结果集
           */
          function query($sql){
              $this->mysqli->query($sql)or die($this->error());
              return $this->mysqli->affected_rows; //返回前一个 Mysql 操作的受影响行数
          }
          /**
           * update 更新语句
           * update biao set 列明=新值 where 列明=某值
           */
          function update($up){
              is_array($sql)or die("非法字符串");
              if (empty($this->opt['where'])) die("条件不能为空");
              $set="";
              $gpc=get_magic_quotes_gpc();
              while (list($k,$v)=each($up)){
                      $v = ! $gpc ? addslashes ( $v ) : $v;
                $set .= "`{$k}`='" . $v . "',";
              }
              $set=rtrim($set,",");
              $sql="UPDATE {$this->table} SET $set {$this->opt['where']}";
              return $this->query($sql);              
      }
      /**
       * 查寻总记录记录数
       */
      function count($tablename=""){
          $tabname = $tabname == '' ? $this->table : $tabname;
          $sql = "SELECT `id` FROM {$tabname} {$this->opt['where']}";
          return $this->query ( $sql );
      }
        /**
         * 查询单机路数
         */
      function find($id){
          $sql = "SELECT {$this->opt['field']} FROM {$this->table}    WHERE `id` = {$id}";
          return $this->sql ( $sql );
      }
      /**
       * 返回错误
       */
      function error(){
          return $this->mysqli->error;
      }
        
    }
  • 相关阅读:
    几种二叉可并堆(详细)
    几种二叉可并堆(详细)
    Winsock编程基础介绍 . 分类: VC++ 2013-09-14 17:30 512人阅读 评论(0) 收藏
    VS2005+WINDDK+Driver Studio 3.2个人总结 分类: VC++ 2013-09-14 17:26 593人阅读 评论(0) 收藏
    用DDK开发的9054驱动 . 分类: windows驱动程序WDM 2013-09-14 17:24 625人阅读 评论(0) 收藏
    arm-linux-gcc下载与安装 分类: arm-linux-Ubuntu 2013-09-11 14:12 698人阅读 评论(0) 收藏
    u盘安装ubuntu10.04 server.txt 分类: arm-linux-Ubuntu 2013-09-11 14:10 882人阅读 评论(1) 收藏
    Makefile的规则 分类: arm-linux-Ubuntu 2013-09-11 14:09 517人阅读 评论(0) 收藏
    学习了LINUX下用C语言遍历文件夹,一些心得 分类: arm-linux-Ubuntu 2013-09-11 14:09 885人阅读 评论(1) 收藏
    dm642的中断定时器 分类: DSP 2013-09-10 14:35 660人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/mengluo/p/4795885.html
Copyright © 2020-2023  润新知