PHP框架開發之可擴充套件的Db資料庫

2021-10-07 03:07:55 字數 2128 閱讀 6105

常見專案開發框架都是支援多種不同資料庫型別的切換,例如:pdo、mysqli、sqlite等等

這裡也做個簡單的筆記,基於簡單工廠模式編寫乙個可擴充套件的db資料庫支援;

/**

* 資料庫型別擴充套件介面

*/inte***ce

dbinte***ce

class

dbfactory

public

static

function

getinstance

($dbtype

)return self:

:$_dbins;}

/** * 由工廠類來統一初始化資料庫連線操作

** @param string $dbtype // 資料庫型別

** @return void

*/private

function

_connect

($host

,$user

,$passwd

,$port

=3306

,$dbname

)}

// 例項,mysqli擴充套件

class

dbmysqli

implements

dbinte***ce

/** * 查詢的資料表

** @param string $table // 查詢的資料表名稱

** @return dbmysqli

*/public

function

table

($table

)/**

* 查詢條件

** @param array $where // 查詢條件

** @return dbmysqli

*/public

function

where

(array

$where=[

])$this

->

_where

=implode

(' and '

,$_where);

return

$this;}

/** * 查詢一條結果資料

** @return null|array

*/public

function

find()

$this

->

query

($_sql);

if(is_null

($this

->

_query))

return

$this

->

_query

->

fetch_array

(mysqli_assoc);

}/**

* sql語句執行

** @param string $sql // sql語句

** @return null|mysqli_result

*/public

function

query

($sql

)public

function

close()

}

// 由工廠類進行資料庫型別例項化

// 若後期需要更多資料庫型別的支援,僅需要參照dbinte***ce介面類實現對應方法即可(增加新擴充套件類即可)

$db= dbfactory:

:getinstance

('mysqli');

// 執行條件查詢

var_dump

($db

->

table

('tp_image_extend')-

>

where([

'img_id'

=>1]

)->

find()

);// 關閉資料庫連線

$db-

>

close()

;

以上只是個實現思路,歡迎互相**交流!

php的yii框架開發總結9

這一篇講解怎麼實現的自動發郵件的功能,我在網上查了很多資料,很多都是用定時檢測來實現的,我試過,效率太低,也卡了。後來就寫了乙個.bat檔案來實現重新整理頁面,用了windows的定時任務定時來執行該.bat檔案,成功實現了功能。bat檔案 echo offiexplore localhost yi...

php的yii框架開發總結6

mvc中的controller部分,所有的controller類都是繼承自controller基類,基類裡面包含actionadmin 管理員,actionindex 一般預設顯示,actionview 檢視某些資訊,actiondelete 刪除資料,actionupdate 修改資訊,actio...

php的yii框架開發總結3

利用yii裡面的gii工具可以很容易的自動建立資料表相應的的curd操作的基於mvc的檔案 modules array gii array class system.gii.giimodule password 這兒設定乙個密碼 瀏覽器開啟http localhost 8088 yii mysite...