關于PHP中的mysql數據庫操作,是每個PHP開發者必須要會的東東,今天亂逛論壇,發現下面的代碼直接拷過來,以備后用。

代碼來源吾愛破解論壇,代碼如果有什么不完美的地方,歡迎各位PHP大神們在下面的評論處留言交流!

<?php
 
/**
 * Created by PhpStorm.
 * Date: 2017/1/16
 * Time: 16:36
 */
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 字符集/編碼
     * [url=home.php?mod=space&uid=155549]@Return[/url] 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 resource 返回執行成功的資源符或執行失敗
     */
    function query($sql){
        if(!($query = mysql_query($sql))){
            $this -> err($sql."<br />".mysql_error());
        }else{
            return $query;
        }
    }
 
    /**
     * 列表
     *
     * @param resource $query   sql語句通過mysql_query執行出來的資源
     * @return array    返回列表數組
     */
    function findAll($query){
        while($rs = mysql_fetch_array($query,MYSQL_ASSOC)){//mysql_fetch_arrary函數把資源轉換成數組,一次轉換一行出來
            $list[] = $rs;
        }
       return isset($list)?$list:"";
    }
 
    /**
     * 找到單條數據
     *
     * @param resource $query   sql語句通過mysql_query執行出來的資源
     * @return array    返回單條信息數組
     */
    function findOne($query){
        $rs = mysql_fetch_array($query,MYSQL_ASSOC);
        return $rs;
    }
 
    /**
     * @param resource $query    sql語句通過mysql_query執行出來的資源
     * @param int $row
     * @param int $filed
     * @return 返回指定行的指定字段的值
     */
 
    function findResult($query,$row = 0,$filed = 0){
        $rs = mysql_result($query,$row,$filed);
        return $rs;
 
    }
 
    /**
     * 添加函數
     *
     * @param string $table 表名
     * @param array $arr
     * @return int
     * 添加數組(包含字段和值的一維數組)
     */
    function insert($table,$arr){
        //$sql="insert into 表名(多個字段)values(多個值)"
        foreach ($arr as $key=>$value){
            $value = mysql_real_escape_string($value);
            $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.")";
        $this -> query($sql);//調用類自身的query(執行)方法執行這條sql語句
        return mysql_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;//修改操作 格式
            $this -> query($sql);
        }
    }
 
 
    /**
     * 刪除函數
     *
     * @param string $table 表名
     * @param string $where 條件
     */
    function del($table,$where){
        $sql = "delete from ".$table." where ".$where;//刪除sql語句 格式: delete frome 表名 where 條件
        $this -> query($sql);
    }
 
}