欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP mysqli数据库操作类

程序员文章站 2024-01-30 12:18:58
...
对象
	static private $_instance;//本类实例
	
	//构造函数初始化$mysqli对象
	private function __construct() {
		$this->mysqli=new mysqli($this->host,$this->user,$this->pwd,$this->db,$this->port);
		if(mysqli_connect_errno()){
			$this->mysqli=false;
			echo mysqli_connect_error();
			die();
		}else{
			$this->mysqli->set_charset($char);	
		}
	}
	
	//析构函数:释放结果集和关闭数据库
	public function __destruct(){
		$this->free();
		$this->close();	
	}
	
	//初始化$mysqli对象
	public static function getInstance(){
		if(!(self::$_instance instanceof self)) {
			self::$_instance = new self();
		}
		return self::$_instance;
	}
	
	//释放结果集
	private function free(){
		@$this->result->free();
	}
	
	//关闭数据库连接
	private function close(){
		$this->mysqli->close();	
	}
	
	//执行sql语句
	public function query($sql){
		return $this->mysqli->query($sql);	
	}
	
	//获取查询结果
	public function get_result_array($table,$field,$c
		$table=$this->prefix.$table;
		if(is_array($field)){
			$field = join(',',$field);
		}
		
		$sql = "SELECT $field FROM ".$table;
		if(!empty($condition))$sql .=" $condition ";
		$this->result = $this->query($sql);
		$return = array();
		while($row = $this->fetch($this->result)){
			$return[] = $row;
		}
		$this->free();
		return $return;
	}
	
	//增删改操作
	public function execute($table,$action,$arr_field=array(),$c
		$table=$this->prefix.$table;
		switch($action){
			case 'INSERT':
				$str_field = '';
				$str_val = '';
				foreach($arr_field as $key=>$val){
					$str_field .= '`'.$key.'`,';
					$str_val .= '\''.$val.'\',';
				}
				$str_field = rtrim($str_field, ',');
				$str_val = rtrim($str_val, ',');
				$sql = "INSERT INTO $table ($str_field) VALUES ($str_val) ";
			break;
			
			case 'DELETE':
				$sql = "DELETE FROM $table";
				if (!empty($condition)) $sql .= " WHERE $condition";
			break;
			
			case 'UPDATE':
				$str_field = '';
				foreach($arr_field as $key => $val){
					$str_field.= '`'.$key ."` ='$val',";
				}
				$str_field = rtrim($str_field, ',');
				$sql = "UPDATE $table SET $str_field";
				if (!empty($condition)) $sql .= " WHERE $condition";
			break;	
		}
		$this->query($sql);
		return $this->get_affected_rows();
	}
	
	//获得受影响行数(针对增删改操作)
	public function get_affected_rows(){
		return $this->mysqli->affected_rows;
	}
	
	//获取集合条数
	public function get_rows($table,$c 1 ',$id='id'){
		$table=$this->prefix.$table;
		$sql="SELECT COUNT($id) num FROM ".$table." $condition";
		$this->result=$this->query($sql);
		$row=$this->fetch($this->result);
		return $row['num'];
	}
	
	//获得结果集
	public function fetch($result){
		return $result->fetch_array($this->fetch_mode);
	}
	
	//获得所有结果集
	public function fetch_all($result){
		$rows=array();
		while($row=$this->fetch($result)){
			$rows[]=$row;	
		}
		return $rows;
	}
}

想用PHP写手机App的接口封装的一个数据库操作类

以上就介绍了PHP mysqli数据库操作类,包括了对象方面的内容,希望对PHP教程有兴趣的朋友有所帮助。