Zend framework 在Zend Framework中使用select查询而不提供数据库信息
我通过以下代码使用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
$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);