Heim > Backend-Entwicklung > PHP-Tutorial > PHP-MySQL-Datenbankoperationsklasse

PHP-MySQL-Datenbankoperationsklasse

WBOY
Freigeben: 2016-07-29 09:13:29
Original
1019 Leute haben es durchsucht
<?php
class Mysql{
	private $host = &#39;localhost&#39;;
	private $port = &#39;3306&#39;;
	private $user = &#39;username&#39;;
	private $pwd = &#39;password&#39;;
	private $db = &#39;dbname&#39;;
	private $char = &#39;UTF8&#39;;
	private $prefix = &#39;&#39;;
	private $fetch_mode = MYSQLI_ASSOC;//获取模式
	private $result;//结果集
	public $mysqli;//mysqli实例<strong>对象</strong>
	static private $_instance;//本类实例
	
	//构造函数初始化$mysqli<strong>对象</strong>
	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<strong>对象</strong>
	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;
	}
}
Nach dem Login kopieren

Ich möchte PHP verwenden, um eine Datenbankbetriebsklasse zu schreiben, die die Schnittstelle der mobilen App kapselt

Das Obige stellt die PHP-MySQL-Datenbankoperationsklasse einschließlich des Objektinhalts vor. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage