Intereting Posts
Как сохранить декодированное изображение base64 в файловой системе, используя php? Как назначить новые значения сохраненным данным в yii 1? MASS WHERE / IN, как обрабатывать пустые / возвращенные данные также совпадают? Получить данные из двух моделей на одной странице – Magento Невозможно использовать интерпретатор командной строки Браузер попросит меня загрузить файл php Необходимо проверить, что веб-сайт содержит сертификат ssl или нет, если да, то какова дата истечения срока действия сертификата с использованием php-скриптов Изгиб изображения с помощью PHP или HTML5 Session_ID продолжает меняться при обновлении; Cookie не отправляется в браузер Приложение PhalconPHP MVC Micro: укажите путь запроса и верните код ответа Вход в удаленный сайт с PHP cURL Доступ к переменной parent из подкласса php и родительского ключевого слова? Как динамически получать значение тега select из таблицы MySQL Mysql Real Escape String PHP-функция Добавление «\» в «Моя полевая запись» Примечание. Преобразование массива в строку – PHP & mySQL

Php Zend Framework: подключение к нескольким базам данных по одному

Я написал сценарий, который проходит через мое приложение ini.

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я добираюсь до следующей базы данных, ее по-прежнему выбирают из первой базы данных, а не из новой.

Возможно ли закрыть соединение, а затем открыть новое соединение при запуске скрипта. Помните, что это просто сценарий, у меня нет загрузочного набора. Я просто настраиваю автозагрузку, чтобы загрузить мои модели.

При прохождении через секции ini

try { $db = Zend_Db::factory($section->database->type, $section->database->toArray()); Zend_Db_Table::setDefaultAdapter($db); Zend_Registry::set('db', $db); } catch(Zend_Db_Adapter_Exception $e) { continue; } 

См. Zend_Application_Resource_Multidb :

application.ini

 [production] resources.multidb.db1.adapter = "pdo_mysql" resources.multidb.db1.host = "localhost" resources.multidb.db1.username = "webuser" resources.multidb.db1.password = "XXXX" resources.multidb.db1.dbname = "db1" resources.multidb.db2.adapter = "pdo_pgsql" resources.multidb.db2.host = "example.com" resources.multidb.db2.username = "dba" resources.multidb.db2.password = "notthatpublic" resources.multidb.db2.dbname = "db2" resources.multidb.db2.default = true 

index.php

 $resource = $bootstrap->getPluginResource('multidb'); $db1 = $resource->getDb('db1'); $db2 = $resource->getDb('db2'); $defaultDb = $resource->getDb(); 

Для всех, у кого нет решения, все, что вам нужно сделать, это следующее:

  1. application.ini -> Определите свои базы данных здесь

    resources.multidb. db .adapter = SQLSRV

    resources.multidb.db.host = localhost

    resources.multidb.db.username = root

    resources.multidb.db.password =

    resources.multidb.db.dbname =

    resources.multidb.db.isDefaultTableAdapter = true

    resources.multidb. db2 .adapter = SQLSRV

    resources.multidb.db2.host = localhost

    resources.multidb.db2.username = root

    resources.multidb.db2.password =

    resources.multidb.db2.dbname =

    resources.multidb.db2.isDefaultTableAdapter = false

  2. контроллер или модель, где необходимо установить соединение со второй БД

    $ db2Ob = Zend_Controller_Front :: getInstance () -> getParam ('bootstrap') -> getResource ('multidb') -> getDb (' db2 ');

  3. Теперь используйте этот $ db2Ob для выполнения запросов:

    $ select = $ db2Ob-> select () -> from (array ('db2tbl' => 'table in 2nd DB'), array ('column name')) -> где (условие);

Надеюсь, это поможет кому-то.

С Уважением,

Супрея Раджгопал