Une classe d'opération MYSQL écrite par PHP

不言
Libérer: 2023-03-23 07:04:02
original
2659 Les gens l'ont consulté

Cet article partage avec vous une classe d'opération MYSQL écrite par moi-même en PHP. Les amis intéressés peuvent jeter un œil aux

Tutoriels vidéo MySQL recommandés : "Tutoriel MySQL》

Faites un enregistrement ici


Plusieurs points de connaissance de la classe PHP

self::$static property name

$this->Général nom d'attribut ou nom de méthode

Quatre points clés de la classe singleton

1 Interdiction de construire des objets --- interdiction de new() private __construct(){} définition vide privée

2 Interdire le clonage d'objets -- clone private __clone(){} Définition vide privée

3 Définir les propriétés de l'objet singleton private static $object name Définition privée statique vide

4 définition Méthode d'entrée public static nom de la méthode de fonction () public static

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

*/

?>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal