2010-06-05 96 views
0

全部,Zend DB MYSQL Wrapper

我有一個使用MVC風格在Zend Framework中編寫的PHP應用程序。我打算使用Zend_DB連接到MySQL數據庫並處理查詢。我正在尋找一個使Zend_DB類易於使用的包裝類。這個包裝類將有一個構造函數,它使用Zend_DB連接到Mysql數據庫。它也有一個方法來爲每個db連接返回一個單例實例。

喜歡的東西:

$pptDB = PPTDB::getInstance(); 
$pptDB->setFetchMode(PPTDB::FETCH_OBJ); 
$result = $pptDB->fetchRow('SELECT * FROM bugs WHERE bug_id = 2'); 
echo $result->bug_description; 

Where class PPTDB extends Zend_DB 

這是不是有可行嗎?如果不是,你會在主要應用程序中使用Zend_DB?

感謝,

+0

Zend_Db_Table_Abstract - >檢查文檔。想一想你在找什麼 – opHASnoNAME 2010-06-05 18:14:59

回答

0

AFAIK它可以使用Zend_Db的作爲一個獨立的(當然,在包中的所有類也應該可以,當然),但如果你不使用的機型很少有獲得從。如果你只對數據庫抽象感興趣,我會推薦PDO,如果你想要一個Zend_DB包裝器,Reflection可以給你一個很好的屬性/函數列表,你可以選擇重寫或不重寫。

http://nl2.php.net/reflection

+0

我在Zend mvc中使用模型..事實上,我的數據庫連接和所有的sql查詢將通過模型處理。 – Jake 2010-06-05 18:21:49

+0

啊,我的道歉,在這種情況下,繼續,在擴展Zend_DB的同時定義你自己想要的函數是很容易的。我看到的唯一問題是當你想要更深入,因爲大多數類都是硬編碼的。 (改變包中其他類的一些內部工作方式,一旦讓Zend_DB將本地pdo-> fetchobjects返回到一個類中而不是在周圍玩耍,那麼我會非常努力地嘗試,這可能不會僅僅通過擴展,而是通過嚴格的硬編碼更改整個包是必需的。成功但現在值得麻煩:P) – Wrikken 2010-06-05 18:31:37

0

你應該使用Zend_Db的工廠::()創建適配器,比Zend_Db_Table_Abstract使用:: setDefaultAdapter()。然後你可以使用Zend_Db_Table :: getDefaultAdapter()或$ table-> getAdapter()來獲得你的適配器。