溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php面向?qū)ο笾畣伪聿僮黝?/h1>
發(fā)布時間:2020-08-21 01:40:44 來源:網(wǎng)絡(luò) 閱讀:439 作者:w0rdyyp 欄目:web開發(fā)
<?php
//數(shù)據(jù)庫單表操作類
define("HOST","localhost");
define("USER","root");
define("PASS","");
define("DBNAME","lamp78");
class Db
{
    protected $link;   //連接資源
    protected $tablename; //表名
    protected $pk='id'; //主鍵字段名
    protected $fields=array(); //當(dāng)前表的字段信息
    protected $where=array();//封裝搜索條件屬性
    protected $order=null; //排序?qū)傩?    protected $limit=null; //分頁屬性(獲取部分?jǐn)?shù)據(jù))
      
      
    public function __construct($tablename)
    {
        $this->tablename = $tablename;
        // 數(shù)據(jù)庫連接
        $this->link=@mysql_connect(HOST,USER,PASS) or die('數(shù)據(jù)庫連接失?。?);
        mysql_set_charset("utf8");
        mysql_select_db(DBNAME,$this->link);
        //獲取當(dāng)前表的結(jié)構(gòu)和主鍵名
        $this->getFields();
          
    }
      
    //私有方法,加載當(dāng)前表中的所有字段信息
    private function getFields(){
        $sql = "desc {$this->tablename}";
        $result = mysql_query($sql,$this->link);
        //解析表結(jié)構(gòu)信息
        while($row = mysql_fetch_assoc($result)){
            $this->fields[]=$row['Field']; //獲取字段名
            //判斷并獲取主鍵名
            if($row['Key']=="PRI"){
                $this->pk = $row['Field'];
            }
        }
        mysql_free_result($result);
    }
      
     //封裝各種條件或獲取所有對應(yīng)數(shù)據(jù)信息
    public function select()
    {
      $list = array();
      //拼裝sql語句
      $sql ="select * from {$this->tablename}";
        
      //判斷并封裝where條件
      if(count($this->where)>0){
        $sql.=" where ".implode(" and ",$this->where);
      }
        
      //判斷并封裝order排序條件
      if($this->order){
        $sql.=" order by ".$this->order;
      }
        
      //判斷并封裝分頁條件
      if($this->limit){
        $sql.=" limit ".$this->limit;
      }
      //執(zhí)行查詢,獲取數(shù)據(jù)。
      $result = mysql_query($sql,$this->link);
      echo $sql;
      //解析結(jié)果集
      while($row = mysql_fetch_assoc($result)){
        $list[]=$row;
      }
      mysql_free_result($result); //釋放結(jié)果集
      return $list;
    }
      
    //獲取封裝條件的總數(shù)據(jù)條數(shù)
    public function total()
    {
      $list = array();
      //拼裝sql語句
      $sql ="select count(*) from {$this->tablename}";
        
      //判斷并封裝where條件
      if(count($this->where)>0){
        $sql.=" where ".implode(" and ",$this->where);
      }
       
      //執(zhí)行查詢,獲取數(shù)據(jù)。
      $result = mysql_query($sql,$this->link);
        
      return mysql_result($result,0,0);
    }
      
    //獲取所有數(shù)據(jù)
    public function findAll()
    { $list = array();
      //拼裝sql語句
      $sql ="select * from {$this->tablename}";
      //執(zhí)行查詢,獲取數(shù)據(jù)。
      $result = mysql_query($sql,$this->link);
      //解析結(jié)果集
      while($row = mysql_fetch_assoc($result)){
        $list[]=$row;
      }
      mysql_free_result($result); //釋放結(jié)果集
      return $list;
    }
      
    /**
     * 獲取指定id號的單條數(shù)據(jù)信息
     * @param int id 獲取信息的主鍵id值。
     * @return array 返回值,找到數(shù)據(jù)則返回數(shù)組,否則返回null
     */
    public function find($id)
    {
        $sql = "select * from {$this->tablename} where {$this->pk}={$id}";
        //執(zhí)行查詢
        $result = mysql_query($sql,$this->link);
        //判斷是有信息
        if($result && mysql_num_rows($result)>0){
            return mysql_fetch_assoc($result);
        }else{
            return null;
        }
    }
      
    //執(zhí)行刪除
    public function delete($id)
    {
        $sql = "delete from {$this->tablename} where {$this->pk}={$id}";
        //執(zhí)行刪除
        mysql_query($sql,$this->link);
          
        //返回影響行數(shù)
        return mysql_affected_rows($this->link);
    }
      
    //執(zhí)行信息添加
    public function insert($data=array()){
        //判斷參數(shù)是否有值,若沒有則嘗試從post自己獲取
        if(empty($data)){
            $data = $_POST;
        }
        //過濾所有字段
        $fieldlist = array();
        $valuelist = array();
        foreach($data as $k=>$v){
            //判斷是否是有效字段
            if(in_array($k,$this->fields)){
                $fieldlist[] = $k;
                $valuelist[] = $v;
            }
        }
        //拼裝sql語句
        $sql = "insert into {$this->tablename}(".implode(",",$fieldlist).") values('".implode("','",$valuelist)."')";
        echo $sql;
        //執(zhí)行添加
        mysql_query($sql,$this->link);
          
        //返回自增信息
        return mysql_insert_id($this->link);
    }
      
    //執(zhí)行信息修改
    public function update($data=array()){
        //判斷參數(shù)是否有值,若沒有則嘗試從post自己獲取
        if(empty($data)){
            $data = $_POST;
        }
        //過濾所有字段
        $fieldlist = array();
        foreach($data as $k=>$v){
            //判斷是否是有效字段
            if(in_array($k,$this->fields) && $k!=$this->pk){
                $fieldlist[] = "{$k}='{$v}'";
            }
        }
        //拼裝sql語句
        $sql = "update {$this->tablename} set ".implode(",",$fieldlist)." where {$this->pk}=".$_POST[$this->pk];
        echo $sql;
        //執(zhí)行添加
        mysql_query($sql,$this->link);
          
        //返回自增信息
        return mysql_insert_id($this->link);
    }
      
   //封裝搜索條件方法
   public function where($data)
   {
        $this->where[]=$data;
        return $this;
   }
   //封裝排序方法
   public function order($data)
   {
        $this->order=$data;
        return $this;
   }
   //封裝分頁方法
   public function limit($m,$n=0)
   {
        if($n>0){
            $this->limit = $m.",".$n;
        }else{
            $this->limit = $m;
        }
        return $this;
   }
}


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI