php数据操作类

1.DB.php
<?php 002 Class DB { 003 004 private $link_id; 005 private $handle; 006 private $is_log; 007 private $time; 008 009 //构造函数 010 public function __construct() { 011 $this->time = $this->microtime_float(); 012 require_once("config.db.php"); 013 $this->connect($db_config["hostname"], $db_config["username"], $db_config["password"], $db_config["database"], $db_config["pconnect"]); 014 $this->is_log = $db_config["log"]; 015 if($this->is_log){ 016 $handle = fopen($db_config["logfilepath"]."dblog.txt", "a+"); 017 $this->handle=$handle; 018 } 019 } 020 021 //数据库连接 022 public function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0,$charset='utf8') { 023 if( $pconnect==0 ) { 024 $this->link_id = @mysql_connect($dbhost, $dbuser, $dbpw, true); 025 if(!$this->link_id){ 026 $this->halt("数据库连接失败"); 027 } 028 } else { 029 $this->link_id = @mysql_pconnect($dbhost, $dbuser, $dbpw); 030 if(!$this->link_id){ 031 $this->halt("数据库持久连接失败"); 032 } 033 } 034 if(!@mysql_select_db($dbname,$this->link_id)) { 035 $this->halt('数据库选择失败'); 036 } 037 @mysql_query("set names ".$charset); 038 } 039 040 //查询 041 public function query($sql) { 042 $this->write_log("查询 ".$sql); 043 $query = mysql_query($sql,$this->link_id); 044 if(!$query) $this->halt('Query Error: ' . $sql); 045 return $query; 046 } 047 048 //获取一条记录(MYSQL_ASSOC,MYSQL_NUM,MYSQL_BOTH) 049 public function get_one($sql,$result_type = MYSQL_ASSOC) { 050 $query = $this->query($sql); 051 $rt =& mysql_fetch_array($query,$result_type); 052 $this->write_log("获取一条记录 ".$sql); 053 return $rt; 054 } 055 056 //获取全部记录 057 public function get_all($sql,$result_type = MYSQL_ASSOC) { 058 $query = $this->query($sql); 059 $i = 0; 060 $rt = array(); 061 while($row =& mysql_fetch_array($query,$result_type)) { 062 $rt[$i]=$row; 063 $i++; 064 } 065 $this->write_log("获取全部记录 ".$sql); 066 return $rt; 067 } 068 069 //插入 070 public function insert($table,$dataArray) { 071 $field = ""; 072 $value = ""; 073 if( !is_array($dataArray) || count($dataArray)<=0) { 074 $this->halt('没有要插入的数据'); 075 return false; 076 } 077 while(list($key,$val)=each($dataArray)) { 078 $field .="$key,"; 079 $value .="'$val',"; 080 } 081 $field = substr( $field,0,-1); 082 $value = substr( $value,0,-1); 083 $sql = "insert into $table($field) values($value)"; 084 $this->write_log("插入 ".$sql); 085 if(!$this->query($sql)) return false; 086 return true; 087 } 088 089 //更新 090 public function update( $table,$dataArray,$condition="") { 091 if( !is_array($dataArray) || count($dataArray)<=0) { 092 $this->halt('没有要更新的数据'); 093 return false; 094 } 095 $value = ""; 096 while( list($key,$val) = each($dataArray)) 097 $value .= "$key = '$val',"; 098 $value .= substr( $value,0,-1); 099 $sql = "update $table set $value where 1=1 and $condition"; 100 $this->write_log("更新 ".$sql); 101 if(!$this->query($sql)) return false; 102 return true; 103 } 104 105 //删除 106 public function delete( $table,$condition="") { 107 if( empty($condition) ) { 108 $this->halt('没有设置删除的条件'); 109 return false; 110 } 111 $sql = "delete from $table where 1=1 and $condition"; 112 $this->write_log("删除 ".$sql); 113 if(!$this->query($sql)) return false; 114 return true; 115 } 116 117 //返回结果集 118 public function fetch_array($query, $result_type = MYSQL_ASSOC){ 119 $this->write_log("返回结果集"); 120 return mysql_fetch_array($query, $result_type); 121 } 122 123 //获取记录条数 124 public function num_rows($results) { 125 if(!is_bool($results)) { 126 $num = mysql_num_rows($results); 127 $this->write_log("获取的记录条数为".$num); 128 return $num; 129 } else { 130 return 0; 131 } 132 } 133 134 //释放结果集 135 public function free_result() { 136 $void = func_get_args(); 137 foreach($void as $query) { 138 if(is_resource($query) && get_resource_type($query) === 'mysql result') { 139 return mysql_free_result($query); 140 } 141 } 142 $this->write_log("释放结果集"); 143 } 144 145 //获取最后插入的id 146 public function insert_id() { 147 $id = mysql_insert_id($this->link_id); 148 $this->write_log("最后插入的id为".$id); 149 return $id; 150 } 151 152 //关闭数据库连接 153 protected function close() { 154 $this->write_log("已关闭数据库连接"); 155 return @mysql_close($this->link_id); 156 } 157 158 //错误提示 159 private function halt($msg='') { 160 $msg .= "\r\n".mysql_error(); 161 $this->write_log($msg); 162 die($msg); 163 } 164 165 //析构函数 166 public function __destruct() { 167 $this->free_result(); 168 $use_time = ($this-> microtime_float())-($this->time); 169 $this->write_log("完成整个查询任务,所用时间为".$use_time); 170 if($this->is_log){ 171 fclose($this->handle); 172 } 173 } 174 175 //写入日志文件 176 public function write_log($msg=''){ 177 if($this->is_log){ 178 $text = date("Y-m-d H:i:s")." ".$msg."\r\n"; 179 fwrite($this->handle,$text); 180 } 181 } 182 183 //获取毫秒数 184 public function microtime_float() { 185 list($usec, $sec) = explode(" ", microtime()); 186 return ((float)$usec + (float)$sec); 187 } 188 } 189 190 ?>

2.config.db.php

<?php   

02     $db_config["hostname"] = "localhost"; //服务器地址  

03     $db_config["username"] = "root"; //数据库用户名  

04     $db_config["password"] = "123"; //数据库密码  

05     $db_config["database"] = "test"; //数据库名称  

06     $db_config["charset"] = "utf8";//数据库编码  

07     $db_config["pconnect"] = 1;//开启持久连接  

08     $db_config["log"] = 1;//开启日志  

09     $db_config["logfilepath"] = './';//开启日志  

10 ?> 

 

posted on 2013-05-20 13:37  Kernel1231  阅读(149)  评论(0编辑  收藏  举报