本篇文章給大家分享的是用PHP自寫的一個MYSQL操作類,有感興趣的朋友可以看一下
在此做個記錄
PHP類的幾個知識點
self::$靜態屬性名
$this->一般屬性名稱或方法名
單例類 四個要點
1禁止構造對象---禁止new() private __construct(){} 私人空定義
2禁止複製對象-- clone private __clone(){} 私人空定義
3定義單例對象屬性 private static $對象名 私人靜態空定義
4定義入口方法 public static function 方法名() 公用靜態
<?phpclass 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 utf8public function charset($charset="utf8"){$a="set names ".$charset;$this->query($a);}//開啟/選擇資料庫:USEpublic 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;}//*********************************//***單例化//privateprivate 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;");*/?>