建立資料庫訪問類的封裝 <?php class DBDA { public $host = "localhost"; //伺服器地址 public $uid = "root"; //資料庫的用戶名 public $pwd = ""; //資料庫的密碼 public $dbname = "";//數據 ...
建立資料庫訪問類的封裝
<?php
class
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
有一個保存實例的靜態成員變數
擁有訪問這個實例的公共靜態方法
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();