Возможно ли приложение PHP, построенное поверх codeigniter, одновременно подключаться к базе данных MySQL и mongoDB? - PullRequest
5 голосов
/ 23 сентября 2011

У меня есть веб-приложение, встроенное в codeigniter и размещенное с cloudcontrol .Я использую обычную базу данных MySQL для всей моей устойчивости данных, и теперь я хочу использовать базу данных mongodb в дополнение к базе данных MySQL.

Я хочу использовать mongodb в качестве очереди заданий для сохранения сообщений между моими работникамии мои серверы приложений.Я получил вдохновение, чтобы сделать это из этого урока: http://www.captaincodeman.com/2011/05/28/simple-service-bus-message-queue-mongodb/

  1. Возможно ли это (одновременное использование двух различных типов баз данных - с / без взлома codeigniter, я бы предположилэто так)

  2. Какие-либо советы по выполнению этого?

---- РЕДАКТИРОВАНИЕ ----

Я включил эту библиотеку в свой проект CI: https://github.com/alexbilbie/codeigniter-mongodb-library

И когда я пытаюсь загрузить ее через: $this->load->library('mongo_db'); Я сталкиваюсь с этим: enter image description here

Я не уверен, как заставить MySQL и Mongodb работать вместе ...

---- РЕДАКТИРОВАТЬ ----

Не берите в голову мой вышеупомянутый вопрос, янеправильно настроил конфигурационный файл и перепутал ошибку ...

1 Ответ

6 голосов
/ 23 сентября 2011

Да, это возможно, из коробки.

Вам необходимо определить две группы в вашей конфигурации, одну для mysql и одну для mongodb.В вашем приложении вы можете затем загрузить эти базы данных по имени группы.

В вашем файле confugration.php:

$db['mysql']['hostname'] = "localhost";
$db['mysql']['username'] = "root";
$db['mysql']['password'] = "";
$db['mysql']['dbdriver'] = "mysql";
//... (full config omitted for brevity)

$db['mongodb']['hostname'] = "localhost";
$db['mongodb']['username'] = "root";
$db['mongodb']['password'] = "";
$db['mongodb']['dbdriver'] = "mongodb";
//... (full config omitted for brevity)

И тогда вы загрузите свои базы данных следующим образом:

$mysqlDB = $this->load->database('mysql', TRUE);
$mongoDB = $this->load->database('mongodb', TRUE); 

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...