php数据库操作类

<?php
002Class 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?>

[代码] config.db.php

01<?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?>

转载于:https://www.cnblogs.com/in-loading/archive/2011/10/17/2215636.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值