在接口被實(shí)例化以后的每個(gè)方法中return 類本身就可以達(dá)到鏈?zhǔn)讲僮鳌?br> 改善了寫多行代碼執(zhí)行一次操作的缺點(diǎn)。
下面請(qǐng)看我的代碼,若有疑問,請(qǐng)留言給我。
class Instance{
public static $db;
public $mysql=NULL;
private function Connect($host,$user,$pwd,$port=3306){
$this->mysql=mysqli_connect($host,$user,$pwd,$port) or die('Can not Connect Mysql!');
}
private function __construct(){}
private function __clone(){}
public static function getInstance($host,$user,$pwd,$port=3306){
if(!isset(self::$db)){
self::$db = new self;
self::$db->Connect($host,$user,$pwd,$port);
}
return self::$db;
}
}
interface SQL{
/**
* @param string $sql SQL語句
* @return mixed
*/
public function Query($sql);
/**
* @param array $condition 條件
* @return mixed
*/
public function Select($condition=array());
/**
* @param array $condition 條件
* @return mixed
*/
public function Where($condition=array());
/**
* @param array $condition 條件
* @return mixed
*/
public function Group($condition=array());
/**
* @param array $condition 條件
* @return mixed
*/
public function Limit($condition=array());
/**
* @param array $condition 條件
* @return mixed
*/
public function Order($condition=array());
/**
* @return mixed 關(guān)閉數(shù)據(jù)庫連接
*/
public function Close();
}
class CoherentModel implements SQL{
private $db; //數(shù)據(jù)庫資源
protected $sql; //SQL語句
protected $result; //結(jié)果
public function __construct($db){
if(empty($db->mysql)){
exit('db not connected !');
}
$this->db=$db->mysql;
}
public function Query($sql=''){
$this->sql=$sql;
$this->result=mysqli_query($this->db,$sql);
return $this->result;
}
/**
* @param array $condition 條件
* @return mixed
*/
public function Select($condition=array()){
return $this;
}
/**
* @param array $condition 條件
* @return mixed
*/
public function Where($condition=array()){
return $this;
}
/**
* @param array $condition 條件
* @return mixed
*/
public function Group($condition=array()){
return $this;
}
/**
* @param array $condition 條件
* @return mixed
*/
public function Limit($condition=array()){
return $this;
}
/**
* @param array $condition 條件
* @return mixed
*/
public function Order($condition=array()){
return $this;
}
/**
* @return mixed 關(guān)閉數(shù)據(jù)庫連接
*/
public function Close(){
mysqli_close($this->db);
}
}
/**
* 單例模式
*/
$Instance = Instance::getInstance('127.0.0.1','mysql','password');
$Model = new CoherentModel($Instance::$db);
/**
* 鏈?zhǔn)讲僮? */
$Model->Where()->Group()->limit()->Select();