1

保護された $_autoQuoteIdentifiers の値を変更する必要がありますが、方法がわかりません。

class ZendX_Db_Adapter_Firebird extends Zend_Db_Adapter_Abstract
{
    protected $_autoQuoteIdentifiers = true;
.
.
.

わかりました、クラスで直接変更できますが、これは最善の方法ではありません。

私のapplication.iniは次のとおりです。

resources.db.adapter = Firebird
resources.db.params.dbname = "/tmp/test.fdb"
resources.db.params.host = "127.0.0.1"
resources.db.params.username = sysdba
resources.db.params.password = masterkey
resources.db.params.adapterNamespace = "ZendX_Db_Adapter"

そして、私の Bootstrap.php は次のとおりです。

protected function _initDatabase()
    {
        $this->bootstrap('db');
        $db = $this->getResource('db');
        $db->setFetchMode(Zend_Db::FETCH_OBJ);
        Zend_Registry::set('db', $db);
        Zend_Db_Table_Abstract::setDefaultAdapter(Zend_Registry::get('db'));
    }

何か案は?

4

3 に答える 3

2

Zend リファレンス ガイドで答えが得られます:リファレンス ガイド

$options = array(
    Zend_Db::AUTO_QUOTE_IDENTIFIERS => false
);

$params = array(
    'host'           => '127.0.0.1',
    'username'       => 'webuser',
    'password'       => 'xxxxxxxx',
    'dbname'         => 'test',
    'options'        => $options
);

$db = Zend_Db::factory('Firebird', $params);
于 2009-10-08T08:30:46.187 に答える
0

独自のクラスで Firebird クラスを拡張し、代わりに「My_Firebird」(または何でも) と言うようにアダプターをセットアップします。クラスでそのようにプロパティを変更できます(渡された構成を介して構成可能にすることもできます)。

于 2009-10-07T16:01:55.987 に答える
0

$this->setAutoQuoteIdentifiers(false)アダプターで呼び出すことはできませんか? :)

于 2009-10-07T18:44:30.680 に答える