PHP Mysql类【转】
生活随笔
收集整理的這篇文章主要介紹了
PHP Mysql类【转】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前幾天沒事在網上轉發現了一個類,記錄下來:
<?php Class DB {private $link_id;private $handle;private $is_log;private $time;//構造函數public function __construct() {$this->time = $this->microtime_float();require_once("config.db.php");$this->connect($db_config["hostname"], $db_config["username"], $db_config["password"], $db_config["database"], $db_config["pconnect"]);$this->is_log = $db_config["log"];if($this->is_log){$handle = fopen($db_config["logfilepath"]."dblog.txt", "a+");$this->handle=$handle;}}//數據庫連接public function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0,$charset='utf8') {if( $pconnect==0 ) {$this->link_id = @mysql_connect($dbhost, $dbuser, $dbpw, true);if(!$this->link_id){$this->halt("數據庫連接失敗");}} else {$this->link_id = @mysql_pconnect($dbhost, $dbuser, $dbpw);if(!$this->link_id){$this->halt("數據庫持久連接失敗");}}if(!@mysql_select_db($dbname,$this->link_id)) {$this->halt('數據庫選擇失敗');}@mysql_query("set names ".$charset);}//查詢 public function query($sql) {$this->write_log("查詢 ".$sql);$query = mysql_query($sql,$this->link_id);if(!$query) $this->halt('Query Error: ' . $sql);return $query;}//獲取一條記錄(MYSQL_ASSOC,MYSQL_NUM,MYSQL_BOTH) public function get_one($sql,$result_type = MYSQL_ASSOC) {$query = $this->query($sql);$rt =& mysql_fetch_array($query,$result_type);$this->write_log("獲取一條記錄 ".$sql);return $rt;}//獲取全部記錄public function get_all($sql,$result_type = MYSQL_ASSOC) {$query = $this->query($sql);$i = 0;$rt = array();while($row =& mysql_fetch_array($query,$result_type)) {$rt[$i]=$row;$i++;}$this->write_log("獲取全部記錄 ".$sql);return $rt;}//插入public function insert($table,$dataArray) {$field = "";$value = "";if( !is_array($dataArray) || count($dataArray)<=0) {$this->halt('沒有要插入的數據');return false;}while(list($key,$val)=each($dataArray)) {$field .="$key,";$value .="'$val',";}$field = substr( $field,0,-1);$value = substr( $value,0,-1);$sql = "insert into $table($field) values($value)";$this->write_log("插入 ".$sql);if(!$this->query($sql)) return false;return true;}//更新public function update( $table,$dataArray,$condition="") {if( !is_array($dataArray) || count($dataArray)<=0) {$this->halt('沒有要更新的數據');return false;}$value = "";while( list($key,$val) = each($dataArray))$value .= "$key = '$val',";$value .= substr( $value,0,-1);$sql = "update $table set $value where 1=1 and $condition";$this->write_log("更新 ".$sql);if(!$this->query($sql)) return false;return true;}//刪除public function delete( $table,$condition="") {if( empty($condition) ) {$this->halt('沒有設置刪除的條件');return false;}$sql = "delete from $table where 1=1 and $condition";$this->write_log("刪除 ".$sql);if(!$this->query($sql)) return false;return true;}//返回結果集public function fetch_array($query, $result_type = MYSQL_ASSOC){$this->write_log("返回結果集");return mysql_fetch_array($query, $result_type);}//獲取記錄條數public function num_rows($results) {if(!is_bool($results)) {$num = mysql_num_rows($results);$this->write_log("獲取的記錄條數為".$num);return $num;} else {return 0;}}//釋放結果集public function free_result() {$void = func_get_args();foreach($void as $query) {if(is_resource($query) && get_resource_type($query) === 'mysql result') {return mysql_free_result($query);}}$this->write_log("釋放結果集");}//獲取最后插入的idpublic function insert_id() {$id = mysql_insert_id($this->link_id);$this->write_log("最后插入的id為".$id);return $id;}//關閉數據庫連接protected function close() {$this->write_log("已關閉數據庫連接");return @mysql_close($this->link_id);}//錯誤提示private function halt($msg='') {$msg .= "\r\n".mysql_error();$this->write_log($msg);die($msg);}//析構函數public function __destruct() {$this->free_result();$use_time = ($this-> microtime_float())-($this->time);$this->write_log("完成整個查詢任務,所用時間為".$use_time);if($this->is_log){fclose($this->handle);}}//寫入日志文件public function write_log($msg=''){if($this->is_log){$text = date("Y-m-d H:i:s")." ".$msg."\r\n";fwrite($this->handle,$text);}}//獲取毫秒數public function microtime_float() {list($usec, $sec) = explode(" ", microtime());return ((float)$usec + (float)$sec);} }?> <?php $db_config["hostname"] = "localhost"; //服務器地址$db_config["username"] = "root"; //數據庫用戶名$db_config["password"] = "123"; //數據庫密碼$db_config["database"] = "test"; //數據庫名稱$db_config["charset"] = "utf8";//數據庫編碼$db_config["pconnect"] = 1;//開啟持久連接$db_config["log"] = 1;//開啟日志$db_config["logfilepath"] = './';//開啟日志 ?>?
轉載于:https://www.cnblogs.com/flay/p/4138043.html
總結
以上是生活随笔為你收集整理的PHP Mysql类【转】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《BI那点儿事》Microsoft 聚类
- 下一篇: [翻译] RKCardView