建立資料庫訪問類的封裝
<?phpclass DBDA{ public $host = "localhost"; //伺服器位址 public $uid = "root"; //資料庫的使用者名稱 public $pwd = ""; //資料庫的密碼 public $dbname = "";//資料庫名 //執行SQL語句,返回相應結果的函數 //$sql是要執行的SQL語句 //$type是SQL語句的類型,0代表增刪改,1代表查詢 //$db代表要操作的資料庫 public function Query($sql,$type=1,$db="xm_youxiang") { //造連線物件 $conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); //判斷串連是否成功 !mysqli_connect_error() or die("串連失敗!"); //執行SQL語句 $result = $conn->query($sql); //判斷SQL語句類型 if($type==1) { //如果是查詢語句返回結果集的二維數組 return $result->fetch_all(); } else { //如果是其他語句,返回true或false return $result; } }
單例模式串連資料庫封裝類
單例模式有三大原則:
建構函式不能為public
有一個儲存執行個體的靜態成員變數
擁有訪問這個執行個體的公用靜態方法
基於單例模式的PHP資料庫串連類:
class DB{ static private $a; //執行個體變數 static private $b; // private $dbquery = array( 'host' => 'localhost', 'uid' => 'root', 'password' => '', 'dbname' =>'資料庫名', ); private function __construct(){ } static public function show(){ if(!(self::$a aof self)){ self::$a = new self(); } return self::$a; } public function connect(){ if(!self::$b){ self::$b = mysql_connect($this->dbquery['host'],$this->dbquery['uid'],$this->dbquery['password']); if(!self::$b){ die('mysql error'.mysql_error()); } //mysql_select_db($this->dbquery['dbname'],self::$b); //mysql_query("set names UTF8",self::$b); } return self::$b; }}
使用時直接執行個體化
eg:$connect = DB::show()->connect();