<?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); } } ?>