2013-01-02 144 views
5

我剛開始瞭解ZF和Firebird,因爲我分配了一個項目。我一直試圖在兩者之間建立連接幾天,但我還沒有成功。 我試着使用PDO_Mysql的ZF,它工作得很好,因爲它與PHP(ZF外)的Firebird連接,但是當我嘗試使用ZF中的Firebird適配器進行連接時,它會一直顯示各種錯誤。在Zend Framework中與Firebird適配器建立數據庫連接

所以,只是爲了檢查。要使用Firebird在ZF中建立連接,應該使用我在application.ini中配置的適配器(Firebird.php)來完成連接?我在的application.ini是這樣的:

**resources.db.adapter = "Firebird" 
resources.db.params.host = "localhost" 
resources.db.params.dbname = "C:/wamp/www/WebTH/application/data/THDATA.gdb" 
resources.db.params.username = "sysdba" 
resources.db.params.password = "masterkey"** 

產生的錯誤:...Firebird.php): failed to open stream: No such file or directory in ...\Loader.php

我還看到一個函數需要在bootstrap.php中添加。如果我在bootstrap.php中添加函數initdb的是這樣的:

**protected function _initDb() 
{ 
    $this->bootstrap('config'); 
    $config = $this->getResource('config'); 
    $db = Zend_Db::factory('Firebird', array(
     'host' => $config->Database->Server, 
     'username' => $config->Database->Username, 
     'password' => $config->Database->Password, 
     'dbname' => $config->Database->DBName, 
     'adapterNamespace' => 'ZendX_Db_Adapter' 
    )); 
    return $db; 
}** 

我得到的錯誤:...Uncaught exception 'Zend_Application_Bootstrap_Exception' with message 'Resource matching "config" not found' in ...\BootstrapAbstract.php

我想知道什麼纔是我真正需要,以使連接工作要做。對不起,如果這太明顯了,但我一直無法找到特定於Zend Framework和Firebird的基本連接案例,因此我不確定我應該做什麼以及應該去哪裏。

+0

是的,謝謝你的建議。當我問這個問題時,我第一次使用該網站,所以不知道它是如何工作的。我現在知道;) – Clarissa

+0

不客氣:-) –

回答

5

[披露:我從來沒有使用Firebird分貝]

正如你可能知道,火鳥適配器不出貨爲核心ZF1包的一部分。看起來你可以從extras把它的ZendX前綴下:

http://framework.zend.com/svn/framework/extras/trunk/library/ZendX/Db/Adapter/

刪除該Firebird.phpFirebird/文件到一個目錄library/ZendX/Db/Adapter/

如果您application.ini使用resources.db.*鍵,那麼就沒有必要在你的Bootstrap類的_initDb()方法。只要確保你包括adapterNamespace關鍵在那裏,還有:

resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"

您可能還需要將ZendX前綴添加到您的自動加載的命名空間:

autoloaderNamespaces[] = "ZendX_"

沒有測試,但像這樣的東西應該工作。

+0

好吧,現在它似乎工作。我添加了resources.db.params.adapterNamespace =「ZendX_Db_Adapter_」 – Clarissa

+0

好吧,現在它似乎工作。我添加了resources.db.params.adapterNamespace =「ZendX_Db_Adapter_」,但它仍然給出了「沒有這樣的文件或目錄」錯誤,所以我做的是在Zend/library> Zend和ZendX中放入同一文件夾的兩個副本。這似乎有點凌亂,但現在它正在工作......謝謝! – Clarissa

+0

其實質是'ZendX'目錄必須位於'include_path'目錄中,'library'文件夾通常是'include_path'組件之一。很高興爲你工作。乾杯! ;-) –