《PHP連接MySQLI類,已連貫操作形式請求內(nèi)部方法》要點:
本文介紹了PHP連接MySQLI類,已連貫操作形式請求內(nèi)部方法,希望對您有用。如果有疑問,可以聯(lián)系我們。
歡迎參與《PHP連接MySQLI類,已連貫操作形式請求內(nèi)部方法》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
<?php
/**
* Created by PhpStorm.
* User: 宇晨PHP培訓(xùn) www.hnphp.net
* Date: 2017/4/20
* Time: 9:06
*/
class MySQL
{
private static $Obj;//作為實例化對象的存儲
private static $DB;//定義一個私有的靜態(tài)屬性存放MySQL對象
private $SQLArr=array();//定義處理之后SQL語句代碼片段
public $TableName='';//定義當前模型所使用的表名
private function __construct()//把構(gòu)造方法設(shè)置為私有的禁止外部實例化調(diào)用
{
self::$DB=new mysqli(DBHOST,DBUSER,DBPWD,DBNAME,DBPORT);
self::$DB->set_charset(DBCODE);
if(self::$DB->connect_errno>0)
{
echo '<hr>錯誤連接編碼:'.self::$DB->connect_errno.'<br>';
echo '錯誤連接信息:'.self::$DB->connect_error.'<hr>';
exit();
}
$this->clearData();//清除SQL語句片段
}
//清除SQL語句片段
private function clearData()
{
$this->SQLArr['Fields']='*';
$this->SQLArr['Where']='';
$this->SQLArr['Order']='';
$this->SQLArr['Limit']='';
$this->SQLArr['Data']='';
$this->SQLArr['Join']='';
}
private function __clone()//把克隆方法設(shè)置為私有的禁止外部克隆當前對象
{
return false;
}
public static function CallRun()//調(diào)用運行當前類
{
if(!(self::$Obj instanceof self))
{
self::$Obj=new self;
}
return self::$Obj;
}
//定義SQL語句的表名
public function table($Param='')
{
$this->TableName=$Param;
return self::$Obj;
}
//定義SQL語句的具體字段
public function fields($Param='')
{
$this->SQLArr['Fields']=empty($Param)?'*':$Param;
return self::$Obj;
}
//定義SQL語句where條件的片段語句
public function where($Param=array())
{
$Str=' where 1 ';
if(!empty($Param) && is_array($Param))
{
foreach($Param as $key=>$val)
{
$Type=empty($val[0])?'=':$val[0].' ';
$Value=$val[1]==''||$val[1]===false?'':$val[1].' ';
$Mark=empty($val[2])?' And ':$val[2].' ';
$Str.=$Mark.$key.' '.$Type.' '.$Value;
}
}
$this->SQLArr['Where']=$Str;
return self::$Obj;
}
//定義SQL語句 join 代碼片段
public function join($Param='')
{
$this->SQLArr['Join']=$Param;
return self::$Obj;
}
//定義SQL語句 Order By 排序的節(jié)點代碼片段
public function order($Param='')
{
$Str='';
if(!empty($Param))
{
$Str=' order by '.$Param;
}
$this->SQLArr['Order']=$Str;
return self::$Obj;
}
//定義SQL語句 limit 代碼片段
public function limit($Param='')
{
$Str='';
if(!empty($Param))
{
$Str=' limit '.$Param;
}
$this->SQLArr['Limit']=$Str;
return self::$Obj;
}
//作為SQL語句的末級節(jié)點,把所有拼接起來的SQL語句片段進行整合對接 單條 select 語句獲取形式
public function find()
{
$Str=$this->SQLArr['Limit'];
if(empty($this->SQLArr['Limit']))
{
$Str=' Limit 1';
}
$Result=$this->SQLQuery($Str);
return $Result->fetch_assoc();
}
//獲取多條數(shù)據(jù)
public function select()
{
$Str='';
if(!empty($this->SQLArr['Limit']))
{
$Str=$this->SQLArr['Limit'];
}
$Result=$this->SQLQuery($Str);
$List=array();
while($Row=$Result->fetch_assoc())
{
$List[]=$Row;
}
return $List;
}
private function SQLQuery($Str='')
{
$SQL='select '.$this->SQLArr['Fields'].' from '.DBPREFIX.$this->TableName.$this->SQLArr['Join'].$this->SQLArr['Where'].$this->SQLArr['Order'].$Str;
//echo $SQL.'<hr>';
return $this->query($SQL);
}
//處理添加或更新時的key value對數(shù)據(jù)
public function data($Param=array())
{
$Arr=array();
if(!empty($Param) && is_array($Param))
{
foreach($Param as $key => $val)
{
$Arr['Key'][]=trim($key);
$Arr['Val'][]='"'.trim($val).'"';
}
}
$this->SQLArr['Data']=$Arr;
return self::$Obj;
}
//數(shù)據(jù)添加
public function insert()
{
if(empty($this->SQLArr['Data']) && !is_array($this->SQLArr['Data']))
{
return false;
}
$KeyStr=implode(',',$this->SQLArr['Data']['Key']);
$ValStr=implode(',',$this->SQLArr['Data']['Val']);
$SQL='insert into '.DBPREFIX.$this->TableName.' ('.$KeyStr.') values ('.$ValStr.')';
return $this->query($SQL);
}
//獲取添加數(shù)據(jù)的ID
public function insertid()
{
return self::$DB->insert_id;
}
//更新數(shù)據(jù)
public function update()
{
if(empty($this->SQLArr['Data']) && !is_array($this->SQLArr['Data']))
{
return false;
}
$Arr='';
foreach($this->SQLArr['Data']['Key'] as $key=>$val)
{
$Arr[]=$val.'='.$this->SQLArr['Data']['Val'][$key];
}
$Str=implode(',',$Arr);
$SQL='update '.DBPREFIX.$this->TableName.' set '.$Str.$this->SQLArr['Where'].$this->SQLArr['Limit'];
//echo $SQL;
return $this->query($SQL);
}
//刪除數(shù)據(jù)
public function delete()
{
if(empty($this->SQLArr['Limit']))
{
$this->SQLArr['Limit']=' Limit 1';
}
$SQL='delete from '.DBPREFIX.$this->TableName.$this->SQLArr['Where'].$this->SQLArr['Limit'];
//echo $SQL;
return $this->query($SQL);
}
public function query($SQL)
{
$this->clearData();//清除SQL語句片段
$Result=self::$DB->query($SQL);
if(self::$DB->errno>0)
{
echo '<hr>SQL語句錯誤編號:'.self::$DB->errno.'<br>';
echo 'SQL語句錯誤描述:'.self::$DB->error.'<hr>';
}
return $Result;
}
public function __destruct()
{
self::$DB->close();
}
}
//$Obj1=MySQL::CallRun();
//$Obj2=MySQL::CallRun();
//echo $Obj1->insertid();
//var_dump($Obj1);
//var_dump($Obj2);
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/12143.html