Zend framework 在Zend Framework中使用select查询而不提供数据库信息

Zend framework 在Zend Framework中使用select查询而不提供数据库信息,zend-framework,zend-db,zend-db-select,Zend Framework,Zend Db,Zend Db Select,我通过以下代码使用select查询: $params = array( 'username' => 'root', 'password' => '', 'dbname' => 'mst2'); $db = Zend_Db::factory('pdo_mysql', $params); $select = $db->select() ->from(array('dc' => 'de

我通过以下代码使用select查询:

$params = array(
        'username' => 'root',
        'password' => '',
        'dbname' => 'mst2');
    $db = Zend_Db::factory('pdo_mysql', $params);

$select = $db->select()
            ->from(array('dc' => 'delivery_center'))
            ->join(array('r' => 'region'), 'dc.region_id = r.region_id');
    $stmt = $select->query();
    $result = $stmt->fetchAll();
这里$db是我正在使用的数据库的凭据。但是我已经通过以下行在application.ini中指定了凭据:

resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = ''
resources.db.params.dbname = mst2
现在,从逻辑上讲,我不应该再次提供这些凭据。但我必须使用select查询。那么,在不再次证明数据库凭据的情况下,如何初始化$db呢?提前感谢。

您可以使用

Zend\u Db::factory($Zend\u config\u object->resources->Db) 但我认为,如果您在application.ini中指定了这一点,那么zend会自动为您创建db对象,您可以通过

Zend_寄存器和键“db”。

db资源默认可用,并在引导时自动初始化

如果您想在应用程序中获取数据库适配器,可以从引导程序中将其作为插件资源获取:

$resource = $bootstrap->getPluginResource('db');
$db = $resource->getDbAdapter();
如果您没有对引导的引用,则始终可以从FrontController检索它:

$front = Zend_Controller_Front::getInstance(); 
$bootstrap = $front->getParam('bootstrap');

我自己得到了答案。我们必须这样使用:$table=new Admin\u Model\u DbTable\u DeliveryCenter()$select=$table->select(Zend\u Db\u table::select\u WITH\u FROM\u PART)$选择->setIntegrityCheck(false)->加入('region','region.region\u id=delivery\u center.region\u id')$结果=$table->fetchAll($select);