Database Zend Db连接和配置

Database Zend Db连接和配置,database,zend-framework,pdo,adapter,Database,Zend Framework,Pdo,Adapter,我正在开发一个zend应用程序。我在“config.ini”中有: 要启动与我的数据库的连接并查询它,我还应该设置什么? 谢谢 Luca您需要在引导中初始化连接: class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initDatabase(){ // get config from config/application.ini $config

我正在开发一个zend应用程序。我在“config.ini”中有:

要启动与我的数据库的连接并查询它,我还应该设置什么?

谢谢


Luca

您需要在引导中初始化连接:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
    protected function _initDatabase(){
        // get config from config/application.ini
        $config = $this->getOptions();

        $db = Zend_Db::factory($config['resources']['db']['adapter'], $config['resources']['db']['params']);

        //set default adapter
        Zend_Db_Table::setDefaultAdapter($db);

        //save Db in registry for later use
        Zend_Registry::set("db", $db);
    }
}

您不必将连接保存在注册表中。

应用程序/models/Data.php中创建数据库模型文件

class Model_Data extends Zend_Db_Table_Abstract{

    protected $_name='myDatabse'; //the database name
    /**
     * Create new entry
     *     
     */
    public function create($title,$author,$authorUrl,$category){
        $row=$this->createRow();
        $row->title=$title;
        $row->author=$author;
        $row->site=$authorUrl;
        $row->category=$category;
        $row->save();
        return $this->_db->lastInsertId();
    }
}
bootstrap.php
文件中声明模型,如下所示:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload()
    {
        $autoLoader=Zend_Loader_Autoloader::getInstance();
        $resourceLoader=new Zend_Loader_Autoloader_Resource(array(
            'basePath'=>APPLICATION_PATH,
            'namespace'=>'',
            'resourceTypes'=>array(                
                'models'=>array(
                    'path'=>'models/',
                    'namespace'=>'Model_'
                ),                
            )
            ));


        $autoLoader->pushAutoloader($resourceLoader);       
    }
}
然后通过控制器操作进行查询:


你试过什么?什么对你不起作用?这就是我需要的!谢谢,我正在半网半书地跟踪一本书。所以有时我会感到困惑。这在某些情况下不起作用,因为“资源”的自动初始化将覆盖此处设置的内容。您可能希望将数据库信息存储在ini文件中“resources.db”之外的其他位置
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload()
    {
        $autoLoader=Zend_Loader_Autoloader::getInstance();
        $resourceLoader=new Zend_Loader_Autoloader_Resource(array(
            'basePath'=>APPLICATION_PATH,
            'namespace'=>'',
            'resourceTypes'=>array(                
                'models'=>array(
                    'path'=>'models/',
                    'namespace'=>'Model_'
                ),                
            )
            ));


        $autoLoader->pushAutoloader($resourceLoader);       
    }
}
class SearchController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {        
       $dataModel=new Model_Data();
       $dataModel->create("title","author","url","category");       

    }


}