本篇文章给大家分享的是用PHP自写的一个MYSQL操作类,有感兴趣的朋友可以看一下
在此做个记录
PHP类的几个知识点
self::$静态属性名
$this-youjiankuohaophpcn一般属性名或方法名
单例类 四个要点
1禁止构造对象---禁止new() private __construct(){} 私有空定义
2禁止克隆对象-- clone private __clone(){} 私有空定义
3定义单例对象属性 private static $对象名 私有静态空定义
4定义入口方法 public static function 方法名() 公共静态
<?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( '<br>连接错误 ('.mysqli_connect_errno().') '.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['db']."数据库中不存在此表";
}
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['db'];
}
$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='1'>";
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='1'>";
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;");
*/
?>
以上就是PHP自写的一个MYSQL操作类的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号