0

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

$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

现在从逻辑上讲,我不应该再次提供这些凭据。但是我必须使用选择查询。那么如何在不再次证明数据库凭据的情况下初始化 $db 呢?提前致谢。

4

2 回答 2

1

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

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

$resource = $bootstrap->getPluginResource('db');
$db = $resource->getDbAdapter();

如果您没有参考引导程序,您总是可以从 FrontController 中检索它:

$front = Zend_Controller_Front::getInstance(); 
$bootstrap = $front->getParam('bootstrap');
于 2011-12-21T18:44:48.337 回答
0

您可以使用

Zend_Db::factory($zend_config_object->resources->db) 但我认为如果您在 application.ini 中指定了这个,那么 zend 会自动为您创建 db 对象,您可以通过
Zend_Register 和键“db”获取它.

于 2011-12-21T14:52:24.940 回答