MySQL操作類的封裝(PHP)


<?php
class mysql{

    /**
     * 報錯函數
     * 
     * @param string $error
     */
    function err($error){
        die("對不起,您的操作有誤,錯誤原因為:".$error);//die有兩種作用 輸出 和 終止   相當於  echo 和 exit 的組合
    }

    /**
     * 連接數據庫
     * 
     * @param string $dbhost 主機名
     * @param string $dbuser 用戶名
     * @param string $dbpsw  密碼
     * @param string $dbname 數據庫名
     * @param string $dbcharset 字符集/編碼
     * @return bool  連接成功或不成功 
     **/
    function connect($config){
        extract($config);
        if(!($con = mysql_connect($dbhost,$dbuser,$dbpsw))){//mysql_connect連接數據庫函數
            $this->err(mysql_error());
        }
        if(!mysql_select_db($dbname,$con)){//mysql_select_db選擇庫的函數
            $this->err(mysql_error());
        }
        mysql_query("set names ".$dbcharset);//使用mysql_query 設置編碼  格式:mysql_query("set names utf8")
    }
    /**
     * 執行sql語句
     *
     * @param string $sql
     * @return bool 返回執行成功、資源或執行失敗
     */
    function query($sql){
        if(!($query = mysql_query($sql))){//使用mysql_query函數執行sql語句
            $this->err($sql."<br />".mysql_error());//mysql_error 報錯
        }else{
            return $query;
        }
    }

    /**
    *列表
    *
    *@param source $query sql語句通過mysql_query 執行出來的資源
    *@return array   返回列表數組
    **/
    function findAll($query){
        while($rs=mysql_fetch_array($query, MYSQL_ASSOC)){//mysql_fetch_array函數把資源轉換為數組,一次轉換出一行出來
            $list[]=$rs;
        }
        return isset($list)?$list:"";
    }

    /**
    *單條
    *
    *@param source $query sql語句通過mysql_query執行出的來的資源
    *return array   返回單條信息數組
    **/
    function findOne($query){
        $rs = mysql_fetch_array($query, MYSQL_ASSOC);
        return $rs;
    }

    /**
    *指定行的指定字段的值
    *
    *@param source $query sql語句通過mysql_query執行出的來的資源
    *return array   返回指定行的指定字段的值
    **/
    function findResult($query, $row = 0, $filed = 0){
        $rs = mysql_result($query, $row, $filed);
        return $rs;
    }

    /**
     * 添加函數
     *
     * @param string $table 表名
     * @param array $arr 添加數組(包含字段和值的一維數組)
     * 
     */
    function insert($table,$arr){
        //$sql = "insert into 表名(多個字段) values(多個值)";
        //mysql_query($sql);
        foreach($arr as $key=>$value){//foreach循環數組
            $value = mysql_real_escape_string($value);//轉義 SQL 語句中使用的字符串中的特殊字符
            $keyArr[] = "`".$key."`";//把$arr數組當中的鍵名保存到$keyArr數組當中
            $valueArr[] = "'".$value."'";//把$arr數組當中的鍵值保存到$valueArr當中,因為值多為字符串,而sql語句里面insert當中如果值是字符串的話要加單引號,所以這個地方要加上單引號
        }
        $keys = implode(",",$keyArr);//implode函數是把數組組合成字符串 implode(分隔符,數組)
        $values = implode(",",$valueArr);
        $sql = "insert into ".$table."(".$keys.") values(".$values.")";//sql的插入語句  格式:insert into 表(多個字段)values(多個值)
        $this->query($sql);//調用類自身的query(執行)方法執行這條sql語句  注:$this指代自身
        return mysql_insert_id();//返回上一步 INSERT 操作產生的 ID
    }

    /**
    *修改函數
    *
    *@param string $table 表名
    *@param array $arr 修改數組(包含字段和值的一維數組)
    *@param string $where  條件
    **/
    function update($table,$arr,$where){
        //update 表名 set 字段=字段值 where ……
        foreach($arr as $key=>$value){
            $value = mysql_real_escape_string($value);
            $keyAndvalueArr[] = "`".$key."`='".$value."'";
        }
        $keyAndvalues = implode(",",$keyAndvalueArr);
        $sql = "update ".$table." set ".$keyAndvalues." where ".$where;//修改操作 格式 update 表名 set 字段=值 where 條件
        $this->query($sql);
    }

    /**
    *刪除函數
    *
    *@param string $table 表名
    *@param string $where 條件
    **/
    function del($table,$where){
        $sql = "delete from ".$table." where ".$where;//刪除sql語句 格式:delete from 表名 where 條件
        $this->query($sql);
    }

}

?>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM