2

我是 Zend 的新手。我正在使用 Zend 1.11 并尝试成功连接到 Firebird 数据库。据我所知,我启用了所有 php_interbase 的东西。我看到 ZendX firebird 适配器,但我仍然收到此消息

警告:include_once(Zend\Db\Adapter\Php\Firebird.php) [function.include-once]:无法打开流:C:\wamp\bin\php\Zend_Framework\library\Zend\ 中没有这样的文件或目录第 146 行的 Loader.php

好像它不知道我在说什么适配器。

我在我的引导带中使用它

    protected function _initDb()
{
    $this->bootstrap('config');
    $config = $this->getResource('config');

    $db = Zend_Db::factory('Php_Firebird', array(
        'host'     => $config->Database->Server,
        'username' => $config->Database->Username,
        'password' => $config->Database->Password,
        'dbname'   => $config->Database->DBName
    ));

    return $db;
}

我假设这与这是 ZendX 的东西而不是 Zend\db 的东西有关,但我找不到它的例子。或者从使用 ZendX 适配器的工厂函数。我尝试使用“Php_Interbase”,但也没有找到(而且我在文件夹中也看不到它)。而且我也尝试了 Pdo_Firebird ,这当然没有用。

有没有人这样做可以指出我做错了什么?

谢谢

4

2 回答 2

4

您只需要添加adapterNamespace到您传递给工厂的配置数组。请参阅此处的第三个示例,也'PHP_'从适配器名称中删除,因此您对工厂的调用应如下所示:-

$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'
    ));
于 2012-06-15T11:27:09.947 回答
1

尝试类似的东西

$db = new ZendX_Db_Adapter_Firebird(array(
    //config part
));
于 2012-06-15T09:41:32.020 回答