Heim  >  Artikel  >  Backend-Entwicklung  >  Eine von PHP geschriebene MYSQL-Operationsklasse

Eine von PHP geschriebene MYSQL-Operationsklasse

不言
不言Original
2018-04-03 15:35:082603Durchsuche

Dieser Artikel zeigt Ihnen eine von mir in PHP geschriebene MYSQL-Operationsklasse. Interessierte Freunde können sich

Empfohlene verwandte MySQL-Video-Tutorials ansehen: „mysql Tutorial

Erstellen Sie hier einen Eintrag

Mehrere Wissenspunkte der PHP-Klasse

self::$static property name

$this- >Allgemeiner Attributname oder Methodenname

Vier Schlüsselpunkte der Singleton-Klasse

1 Verbot der Konstruktion von Objekten --- Verbot der privaten leeren Definition von new() private __construct(){} private leere Definition

2 Klonen von Objekten verbieten – clone private __clone(){} Private leere Definition

3 Singleton-Objekteigenschaften definieren private static $object name Private statische leere Definition

4 Definitionseintrag Methode öffentliche statische Funktion Methodenname () öffentliche statische

<?php

class mysqldb
{
	public $cs=array(//连接数组
		"h"=>"127.0.0.1",
		"u"=>"root",
		"p"=>"",
		"db"=>"mysql",
		"pt"=>3306
		);

	public $arr;//取回的结果集存放在此数组中

	private static $con;//连接资源
	private static $result;//结果资源

	//连接方法
	public function connect()
	{
		self::$con=@mysqli_connect($this->cs[h],$this->cs[u],$this->cs[p],$this->cs[db],$this->cs[pt]);

		if ( !self::$con )	
		{
			die( &#39;<br>连接错误 (&#39;.mysqli_connect_errno().&#39;) &#39;.mysqli_connect_error());
		}
	}
	//SQL命令执行方法
	public function query($sql)
	{
		
		if(!self::$result=@mysqli_query(self::$con,$sql))//执行SQL命令
		{
			if(@mysqli_errno())//执行错误编号判断
			{//有错误编号
				echo "<br>*****************************";
				echo "<br />执行失败!!!";
				echo "<br>所执行的SQL命令:$sql";
				echo "<br />错误号:(".mysqli_errno().")";
				echo "<br />错误信息:".mysqli_error();
				echo "<br>*****************************";
				mysqli_free_result ( $this->result );//释放结果资源
			}
			else
			{//没有错误编号
				echo "<br>所执行的SQL命令:$sql";
				echo "<br>".$this->cs[&#39;db&#39;]."数据库中不存在此表";
			}
			mysqli_close ( $this->con );//关闭连接资源
			die();
		}
		
	}
	//设置字符集 set names utf8
	public function charset($charset="utf8")
	{
		$a="set names ".$charset;
		$this->query($a);
	}
	//打开/选择数据库:USE
	public function selectdb($dbname="")
	{
		if($dbname=="")
		{
			$dbname=$this->cs[&#39;db&#39;];
		}
		$a="use ".$dbname;
		$this->query($a);
	}
	//执行前的准备 连接 设置连接字符 打开数据库
	public function queryfun()
	{
		if(!self::$con)//如果连接资源为NULL
		{
			$this->connect();
		}
		else
		{
			echo "<br>已经建立连接,不必再建立";
		}
		$this->charset();//设置字符
		$this->selectdb();//打开数据库

	}

	//执行SQL命令,并将远程结果集存放在本地数组$this->arr.
	public function queryarr($sql)
	{
		
		$this->queryfun();//执行前准备
		$this->query($sql);//执行命令
		if(self::$result)//如果有执行结果集就取出存为本地数组
		{
			$this->arr=mysqli_fetch_all(self::$result,MYSQLI_ASSOC);//取得所有,字段名下标的数组
			mysqli_free_result (self::$result);//释放数据库服务器的结果资源
		}
		mysqli_close (self::$con);//断开数据库服务器的连接
		self::$result=null;//复位
		self::$con=null;//复位
	}

	public function tab($arr)
	{
		echo "<table border=&#39;1&#39;>";
		foreach($arr as $k1=>$v1)
		{				
			//**********************
			//表头
			if($k1==0)
			{
				echo "<tr>";
				foreach($v1 as $k2=>$v2)
				{
					
					echo "<th>";
					echo $k2;
					echo "</th>";
				}
				echo "</tr>";
			}
			//**********************
			//内容
			echo "<tr>";
			foreach($v1 as $k2=>$v2)
			{
				
				echo "<td>";
				echo $v2;
				echo "</td>";
			}
			echo "</tr>";
		}
		echo "</table>";

	}

	public function querytab($sql)
	{
		$this->queryfun();//执行前准备
		$this->query($sql);//执行命令
		if(self::$result)//如果有执行结果集就取出存为本地数组
		{
			$this->arr=mysqli_fetch_all(self::$result,MYSQLI_ASSOC);//取得所有带下标的数组

			mysqli_free_result (self::$result);//释放数据库服务器的结果资源
			mysqli_close (self::$con);//断开数据库服务器的连接
			self::$result=null;//复位
			self::$con=null;//复位
		
			//return $arr;
			echo "<table border=&#39;1&#39;>";
			foreach($this->arr as $k1=>$v1)
			{				
				//**********************
				//表头
				if($k1==0)
				{
					echo "<tr>";
					foreach($v1 as $k2=>$v2)
					{
						
						echo "<th>";
						echo $k2;
						echo "</th>";
					}
					echo "</tr>";
				}
				//**********************
				//内容
				echo "<tr>";
				foreach($v1 as $k2=>$v2)
				{
					
					echo "<td>";
					echo $v2;
					echo "</td>";
				}
				echo "</tr>";
			}
			echo "</table>";

			return true;

		}
		mysqli_close(self::$con);//断开数据库服务器的连接
		self::$result=null;//复位
		self::$con=null;//复位

		return false;
	}


	//*********************************
	//***单例化
	//private
	private function __construct(){}//令new()新对象失效
	private function __clone(){}//令克隆对象失效.

	private static $db;//单例对像属性
	
	public static function getdb()//单例对象入口
	{
		if(!isset(self::$db))
		{
			self::$db=new self();
		}
		return self::$db;
	}
}
//******************************
//**********调用例子************
//******************************
/*
$k=mysqldb::getdb();
$k->cs=array(
		"h"=>"127.0.0.1",
		"u"=>"root",
		"p"=>"",
		"db"=>"mysql",
		"pt"=>3306
		);
$k->queryarr("select * from user;");
$k->tab($k->arr);
echo "<hr />";
$k->querytab("select * from user;");

*/

?>

Das obige ist der detaillierte Inhalt vonEine von PHP geschriebene MYSQL-Operationsklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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