#php #zend-framework #doctrine #database-connection #doctrine-query
#php #zend-framework #doctrine #database-connection #doctrine-запрос
Вопрос:
Я использую Zend 1.11 с Doctrine 1.1.4. Мое приложение использует несколько баз данных.
В моем bootstrap.php файл, я настроил детали для двух баз данных;
$dbs = array(
'global_users'=>array(
'adapter' => 'mysqli',
'params' => array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'global_users',
'charset' => 'UTF8',
),
),
'search_landscape'=>array(
'adapter' => 'mysqli',
'params' => array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'search_landscape',
'charset' => 'UTF8',
),
),
);
Я сгенерировал классы модели Doctrine для второй базы данных search_landscape. Я еще не использовал базу данных global_users в приложении, в то время как я выполнил несколько запросов Doctrine ко второй базе данных search_landscape, которая пока работает как ожидалось.
При выполнении запросов Doctrine я не определяю явное подключение к базе данных, т. Е. она использует соединение по умолчанию, как Doctrine узнает, к какой базе данных подключаться?
Когда я начну использовать другие базы данных в приложении, я понимаю, что мне придется явно определить подключение Doctrine для каждой из них, однако прямо сейчас я еще не определил никаких явных подключений, Doctrine, похоже, знает, к какой БД подключаться из двух.
Ценю помощь.
Ответ №1:
Doctrine_Manager::getInstance()->getCurrentConnection();
Doctrine_Manager — это одноэлементный объект, вы можете установить другие подключения по умолчанию, используя их имена. Смотрите документацию по API Doctrine_Manager для получения дополнительной информации.