Доступ к базе данных Zend Framework - PullRequest
1 голос
/ 06 марта 2012

Я хочу получить доступ к базе данных «mysql», я прочитал, что мы можем определить конфигурацию адаптера БД и БД, написав эти строки в файле application.ini

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 Ответ

2 голосов
/ 06 марта 2012

Настройте ресурс 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 ...

In 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 Quickstart , Zend_Db_Table , Zend_Db_Select для дополнительных примеров.

...