与Zend Framework中的Firebird适配器的数据库连接

时间:2013-01-02 13:48:36

标签: zend-framework database-connection firebird interbase

我刚刚开始了解ZF和Firebird,因为我被分配了一个项目。我一直试图在两者之间建立联系,但我还没有成功。 我用PDO_Mysql尝试了ZF,它的工作正常,因为它与PHP的Firebird连接(在ZF之外),但当我尝试在ZF中与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特有的基本连接案例,因此我不确定应该做什么以及应该去哪里。

1 个答案:

答案 0 :(得分:5)

[披露:我从未使用过Firebird db。]

您可能知道,Firebird适配器不作为核心ZF1包的一部分提供。您似乎可以从extras前缀{/ 1>}下的ZendX拉出来

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

Firebird.phpFirebird/个文件放入目录library/ZendX/Db/Adapter/

如果您的application.ini使用resources.db.*密钥,则_initDb()课程中不需要Bootstrap方法。只需确保在其中包含adapterNamespace密钥:

resources.db.params.adapterNamespace = "ZendX_Db_Adapter_"

您可能还需要将ZendX前缀添加到自动加载器命名空间:

autoloaderNamespaces[] = "ZendX_"

未经测试,但这样的事情应该有效。