Zend framework Zend框架中与Firebird适配器的数据库连接
我刚开始学习ZF和Firebird,因为我被分配给一个项目。几天来,我一直在尝试将两者联系起来,但还没有成功。 我使用PDO_Mysql尝试了ZF,它的工作原理与使用PHP的Firebird连接一样(在ZF之外),但是当我尝试在ZF中使用Firebird适配器进行连接时,它会不断显示各种错误 所以,我只是想核实一下。要在ZF中建立和Firebird的连接,应该使用我在application.ini中配置的适配器(Firebird.php)来完成?我在application.ini中有类似的内容: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中有类似的内容:
**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路径
组件之一。很高兴你成功了。干杯是的,谢谢你的建议。当我问这个问题时,我是第一次使用这个网站,所以不知道它是如何工作的。我现在知道了;)