本篇文章给大家分享的是用PHP自写的一个MYSQL操作类,有感兴趣的朋友可以看一下
相关mysql视频教程推荐:《mysql教程》
在此做个记录
PHP类的几个知识点
self::$静态属性名
$this->一般属性名或方法名
单例类 四个要点
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;"); */ ?>
Atas ialah kandungan terperinci PHP自写的一个MYSQL操作类. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!