访问数据库zend框架

时间:2012-03-06 06:22:06

标签: zend-framework mysqli adapter

我想访问数据库“mysql”,我读到我们可以通过在application.ini文件中写下这些行来定义db adapter和db配置

resources.db.adapter = MYSQLI
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password =123456
resources.db.params.dbname = visits_db

我想获取 $ db 对象以便用于执行sql语句

    $db->insert("inspection_visits_tb",
            $insepctionVisitData = array(
        'day' => $visit->getDay(),
        'date' => $visit->getDate(),
        'target' => $visit->getTarget()
    ));

我想从application.ini文件中获取它而不是这个

require_once 'Zend/Db.php';
    $db = Zend_Db::factory("MYSQLI",
                    array(
                        "host" => "localhost",
                        "dbname" => "visits_db",
                        "username" => "root",
                        "password" => "123456")
    );

因为我只想在一个地方定义数据库适配器。我该怎么做才能获得 $ db 对象?

1 个答案:

答案 0 :(得分:2)

db中设置application.ini资源,就像您一样。添加isDefaultAdapter选项。

resources.db.adapter = "MYSQLI"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = "123456"
resources.db.params.dbname = "visits_db"
resources.db.isDefaultAdapter = true

然后获取$db对象......

在Bootstrap.php

protected function _initDb()
{
    $this->bootstrap('db');
    $db = $this->getResource('db');
    Zend_Registry::set('db', $db);
}

来自其他地方没有使用注册表

$db = Zend_Db_Table::getDefaultAdapter();

使用Zend_Db_Table

$table  = new Zend_Db_Table('bugs');
$select = $table->select()...

有关更多示例,另请参阅ZF QuickstartZend_Db_TableZend_Db_Select