0

次のコードのように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を初期化するにはどうすればよいですか??よろしくお願いします。

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 に答える