PHP+mysql常用类库

<?php
/**
 * @title:      Ekcms mysql类库
 * @version:    1.0
 * @author:     perry <perry@1kyou.com>
 * @published:  2013-10-2
 */

//数据库连接类
class mysql
{
        var $ConnStr;
        
        function __construct(){
                $this->connect();
                $this->selectdb();
                
        }
        
        //连接数据库服务器
        function connect(){
         
            $this->ConnStr=(DB_PCONNECT)?@mysql_pconnect(DB_HOST.":".DB_PORT,DB_USER,DB_PWS):@mysql_connect(DB_HOST.":".DB_PORT,DB_USER,DB_PWS);

        if(!$this->ConnStr){
                        echo '数据库连接错误'.mysql_error();
                }
        }
        
        //连接数据库
        function selectdb(){
                if(!@mysql_select_db(DB_NAME,$this->ConnStr)){
                        echo '数据库'.DB_NAME.'不存在';
                }
                @mysql_unbuffered_query("set names ".DB_CHARSET);
        }
        
        //mysql执行语句
        function query($sql){
                $sql = str_replace("#@__", PREX, $sql);
                if(!$res=@mysql_query($sql,$this->ConnStr)){
                        echo '操作数据库失败'.mysql_error()."<br>sql:{$sql}";
                }
                return $res;
        }
        
        //sql报错信息
        function get_error(){
                $err=mysql_error($this->ConnStr);
                return $err;
        }
        
        //取出数字作为数组索引的数据集合
        function fetch_array($sql){
                $result=$this->query($sql);
                $array = array();
                while($rows=@mysql_fetch_array($result)){
                        $array[]=$rows;
                }
                mysql_free_result($result);
                return $array;
        }
        
        function fetch_rows($sql){
                $query = $this->query($sql);
        return @mysql_fetch_array($query);
    }
        
    //读取单条数据
        function get_one($sql){
                $result=$this->query($sql);
                return @mysql_fetch_assoc($result);
        }
        
        //取出字段作为数组索引的数据集合
        function fetch_asc($sql){
                $result=$this->query($sql);
                $arr=array();
                while($rows=@mysql_fetch_assoc($result)){
                        $arr[]=$rows;
                }
                mysql_free_result($result);
                return $arr;
        }
        
        //最后一次插入的id
        function insert_id(){
                return mysql_insert_id($this->ConnStr);
        }
        
        //返回数据数目
        function num_rows($sql){
                $result=$this->query($sql);
                $num=@mysql_num_rows($result);
                mysql_free_result($result);
                return $num;
        }
        
        //取得结果集中字段的数目
        function num_fields($query){
        return mysql_num_fields($query);
    }
        
        //返回字段名数组
        function fetch_field($sql){
                $result=$this->query($sql);
                $num=$this->num_fields($result);
                for($i=0;$i<$num;$i++){
                        $arr[]=mysql_field_name($result,$i);
                }
                return $arr;
        }
        
        //获得版本信息
        function server_info(){
                return mysql_get_server_info($this->ConnStr);
        }
        
        //查询数据条数
        function db_num($table,$where){
                $num=$this->num_rows("select * from ".PREX.$table." where $where");
                return $num;
        }
        
        //添加信息进数据表
        function db_insert($table, $field) {
                $SQL = "INSERT INTO `".PREX.$table."` SET $field";
                $this->query($SQL);
                return $this->insert_id();
        }
        
        //更新数据表信息
        function db_update($table,$field,$where){
                $SQL = "UPDATE `".PREX.$table."` SET $field WHERE $where";
                return $this->query($SQL);
        }
        
        //删除数据信息
        function db_delete($table, $where) {
                $SQL = "DELETE FROM `".PREX.$table."` WHERE $where";
                return $this->query($SQL);
        }
        //执行事务函数
        function query_work($arr){
                $this->query("SET AUTOCOMMIT=0");
                $this->query("BEGIN");
                if (is_array($arr)){
                        foreach ($arr as $k=>$v){
                                if(!$this->query($v)){
                                        $this->query("ROOLBACK");
                                }
                        }
                        return $this->query("COMMIT");//执行事务
                }
                return '';
        }
        //手动关闭数据库
        function close(){
                @mysql_close($this->ConnStr);
        }
        /*
        *
        *数据库操作
        *创建、修改、删除数据表
        *添加、修改、删除字段
        *
        */
        
        //创建数据表
        function create_table($table,$field){
                $sql="create table ".PREX.$table." (".$field.") ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci";
                return $this->query($sql);
        }
        
        //添加字段
        function add_field($table,$field){
                $sql="alter table ".PREX.$table." add ".$field." CHARACTER SET utf8 COLLATE utf8_general_ci NULL";
                return $this->query($sql);
        }
        
        //修改字段
        function edit_field($table,$field){
                $sql="alter table ".PREX.$table." CHANGE ".$field." CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL";
                return $this->query($sql);
        }
        
        //删除字段
        function del_field($table,$field){
                $sql="alter table ".PREX.$table." drop column ".$field;
                return $this->query($sql);
        }
        
        //显示数据表
        function show_table(){
                $rel=$this->fetch_array('show tables');
                foreach($rel as $key=>$value){
                        $arr[]=$value[0];
                }
                return $arr;
        }
        
        //修改数据表名,$table-改前表名  $table_now-改后表名
        function rename_table($table,$table_now){
                $sql="RENAME TABLE ".$table." TO ".$table_now;
                return $this->query($sql);
        }
        
        //删除数据表
        function del_table($table){
                $sql="drop table ".PREX.$table;
                return $this->query($sql);
        }
        //析构函数关闭数据库
        function __destruct(){
                @mysql_close($this->ConnStr);
        }
}
?>