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

 

posted @ 2014-02-09 11:34  蚂蚁小圆  阅读(897)  评论(0编辑  收藏  举报