Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework Zend框架中与Firebird适配器的数据库连接_Zend Framework_Database Connection_Firebird_Interbase - Fatal编程技术网

Zend framework Zend框架中与Firebird适配器的数据库连接

Zend framework Zend框架中与Firebird适配器的数据库连接,zend-framework,database-connection,firebird,interbase,Zend Framework,Database Connection,Firebird,Interbase,我刚开始学习ZF和Firebird,因为我被分配给一个项目。几天来,我一直在尝试将两者联系起来,但还没有成功。 我使用PDO_Mysql尝试了ZF,它的工作原理与使用PHP的Firebird连接一样(在ZF之外),但是当我尝试在ZF中使用Firebird适配器进行连接时,它会不断显示各种错误 所以,我只是想核实一下。要在ZF中建立和Firebird的连接,应该使用我在application.ini中配置的适配器(Firebird.php)来完成?我在application.ini中有类似的内容:

我刚开始学习ZF和Firebird,因为我被分配给一个项目。几天来,我一直在尝试将两者联系起来,但还没有成功。 我使用PDO_Mysql尝试了ZF,它的工作原理与使用PHP的Firebird连接一样(在ZF之外),但是当我尝试在ZF中使用Firebird适配器进行连接时,它会不断显示各种错误

所以,我只是想核实一下。要在ZF中建立和Firebird的连接,应该使用我在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):无法打开流:在…\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;
}**
我得到错误:
…未捕获异常“Zend\u应用程序\u引导程序\u异常”,消息“Resource matching”config“not found”,位于…\BootstrapAbstract.php


我想知道我真正需要做什么,以使连接工作。如果这太明显了,很抱歉,但是我还没有找到Zend Framework和Firebird的特定基本连接案例,因此我不确定应该做什么以及应该去哪里。

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

您可能知道,Firebird适配器不是作为核心ZF1包的一部分提供的。看起来您可以从
ZendX
前缀下的
extras
中提取它:

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

如果您的
application.ini
使用
resources.db.*
键,那么您的
Bootstrap
类中就不需要
\u initDb()
方法。只需确保在其中包含
adapterNamespace
键即可:

resources.db.params.adapterNamespace=“ZendX\u db\u Adapter”

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

autoloaderNamespaces[]=“ZendX_3;”


未测试,但类似的功能应该可以使用。

好的,现在似乎可以使用了。我添加了resources.db.params.adapterNamespace=“ZendX\u db\u Adapter\uu”好,现在看来它可以工作了。我添加了resources.db.params.adapterNamespace=“ZendX\u db\u Adapter\u”但仍然出现“没有这样的文件或目录”错误,因此我所做的是将同一文件夹的两个副本放在Zend/library>Zend和ZendX中。看起来有点乱,但现在它正在工作。。。谢谢本质是
ZendX
目录必须位于
include\u路径
中,通常,
library
文件夹是
include\u路径
组件之一。很高兴你成功了。干杯是的,谢谢你的建议。当我问这个问题时,我是第一次使用这个网站,所以不知道它是如何工作的。我现在知道了;)