php 封裝mysql 資料庫操作類

來源:互聯網
上載者:User

標籤:

<?php
header(‘content-type:text/html;charset=utf-8‘);
//封裝mysql   串連資料庫php_mysql
//封裝mysql   串連資料庫php_mysqli
//封裝mysql   串連資料庫php_pdo
class db{
    //三私一共
    //私人的靜態屬性
    private static $dbcon = false; //儲存資料庫連接對象
    //私人的構造方法
    private function __construct(){
        //建立連結
        $dbcon=mysql_connect(‘127.0.0.1‘,‘root‘,‘root‘);
        //選擇資料庫
        mysql_select_db(‘yii_back‘,$dbcon) or die(‘mysql connect error‘);
        //設定字元集
        mysql_query(‘set names utf8‘);
    }
    //私人的clone
    private function __clone(){}
    //共有的靜態方法
    public static function getInstance(){
        if(self::$dbcon == false){
            self::$dbcon = new self;
        }
        return self::$dbcon;
    }

    /**
    *執行sql語句
    *@param $sql
    *@return source
    **/
    public function query($sql){
        //通過mysql_query來實現
        $query = mysql_query($sql);
        
        //返回執行結果
        return $query;
    }

    /**
     * 查詢某個欄位  eg:  select  name  select count(*)
     *@param $sql
     *@return string or int
    **/
    public function getOne($sql){
        $query=$this->query($sql);
        //有可能出現錯誤
        if(!$query){
            //SQL語句有錯
            echo ‘SQL語句錯誤!<br/>‘;
            echo ‘錯誤編號:‘ . mysql_errno() . ‘<br/>‘;
            echo ‘錯誤原因:‘ . mysql_error() . ‘<br/>‘;
            exit;
        }    
        return mysql_result($query,0);
    }

    /**
     * 查詢一行記錄
     *@param $sql
     *@return array 一維數組
     *mysql_fetch_assoc  mysql_fetch_array  mysql_fetch_row
    **/
    public function getRow($sql,$type="assoc"){
        $query=$this->query($sql);
        if(!in_array($type,array(‘assoc‘,‘array‘,‘row‘))){
            die(‘mysql_query error!‘);
        }
        $funcname = "mysql_fetch_".$type;
        return $funcname($query);
    }

    /**
     * 查詢多條記錄
     *@param $sql
     *@return array 二維數組
     *mysql_fetch_assoc  mysql_fetch_array  mysql_fetch_row
    **/
    public function getAll($sql){
        //調用sql 執行函數
        $query=$this->query($sql);
        $list=array();
        //遍曆結果
        //while($arr = $this->getRowFromSource($query)){
        while($arr = mysql_fetch_assoc($query)){
            $list[]=$arr;
        }
        return $list;
    }

    /**
     * 獲得上一次插入的id
    **/
    public function getInsertId(){
        return mysql_insert_id();
    }

    /**
     * 新增資料方法
     * @param1 string $sql,要執行的SQL語句
     * @param1 array  $data,要添加的資料
     * @return 自增長id
    **/
    public function insert($table,$data=array()){  
        //print_r($data);die;
        $sql="insert into ".$table."(".implode(‘,‘,array_keys($data)).") values (‘".implode("‘,‘",array_values($data))."‘)";
        //調用sql 執行函數
        $query=$this->query($sql);
        if($query){
            //返回資料
            return mysql_insert_id();  //得到上次操作的自增長ID
        }else{
            return $sql;
        }
    }

    /**
     * 修改資料方法
     * @param string $table 操作的資料表名
     * @param array $data 操作的資料
     * @param array $condition 條件
    **/
    public function update($table,$data,$condition=array()){
        $where=‘‘;
        if(!empty($condition)){   
            foreach($condition as $k=>$v){
                $where.=$k."=‘".$v."‘ and ";
            }
            $where=‘where ‘.$where .‘1=1‘;
        }
        $updatastr = ‘‘;
        if(!empty($data)){
            foreach($data as $k=>$v){
                $updatastr.= $k."=‘".$v."‘,";
            }
            $updatastr = ‘set ‘.rtrim($updatastr,‘,‘);
        }
        $sql = "update {$table} {$updatastr} {$where}";
        $query=$this->query($sql);
        if($query){
            echo ‘修改成功‘;
        }else{
            return $sql;
        }
    }

    /**
     * 刪除資料方法
     * @param string $table 操作的資料表名
     * @param array  $condition 刪除的條件
     */
    public function delete($table,$condition){
        $where=‘‘;
        if(!empty($condition)){     
            foreach($condition as $k=>$v){
                $where.=$k."=‘".$v."‘ and ";
            }
            $where=‘where ‘.$where .‘1=1‘;
        }
        $sql="delete from {$table} {$where}";
        $query=$this->query($sql);
        if($query){
            echo ‘刪除成功‘;
        }else{
            return $sql;
        }
    }

    /**
     * 查詢資料方法
     * @param string $table 操作的資料表名
     * @param array  $condition 查詢的條件
     * @param array  $field     要查詢的欄位
     */
    public function select($table,$condition=array(),$field = array()){
        $where=‘‘;
        if(!empty($condition)){
             
            foreach($condition as $k=>$v){
                $where.=$k."=‘".$v."‘ and ";
            }
            $where=‘where ‘.$where .‘1=1‘;
        }
        $fieldstr = ‘‘;
        if(!empty($field)){
            foreach($field as $k=>$v){
                $fieldstr.= $v.‘,‘;
            }
            $fieldstr = rtrim($fieldstr,‘,‘);
        }else{
            $fieldstr = ‘*‘;
        }
        $sql = "select {$fieldstr} from {$table} {$where}";
        $query=$this->query($sql);
        $resultRow = array();
        $i = 0;
        while($row=mysql_fetch_assoc($query)){
            foreach($row as $k=>$v){
                $resultRow[$i][$k] = $v;
            }
            $i++;
        }
        return $resultRow;
    }
}

php 封裝mysql 資料庫操作類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.