2015-11-19 6 views
0

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

Я уже установил следующее в конфигурации базы данных:

class DATABASE_CONFIG { 

public $default = array(
    'datasource' => 'Database/Mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'root', 
    'password' => '', 
    'database' => 'db_one', 
    'prefix' => '', 
    //'encoding' => 'utf8', 
); 

public $database2 = array(
    'datasource' => 'Database/Mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'root', 
    'password' => '', 
    'database' => 'db_announcement', 
    'prefix' => '', 
    //'encoding' => 'utf8', 
); 

ответ

0

Вы должны исследовать немного больше в гугле, прежде чем задать вопрос здесь.

В любом случае CakePHP принимает подключение по умолчанию к базе данных, которое находится в базе данных base.php в основной папке, поэтому все ваши запросы, которые вы выполняете в базе данных, которые определены по умолчанию, vairable в файле database.php, и если вы хотите подключить несколько баз данных чем вы можете попробовать что-то вроде этого.

В файле конфигурации базы данных:

public $database2 = array(
     'datasource' => 'Database/Mysql', 
     'persistent' => false, 
     'host' => 'localhost', 
     'login' => 'root', 
     'password' => '*******', 
     'database' => '*****', 
     'prefix' => '', 
     'encoding' => 'utf8', 
    ); 

И в вашем контроллере вы можете иметь соединение следующим образом:

 $db = ConnectionManager::getDataSource('user'); 
     $list = $db->rawQuery('your query'); or customized CakePHP queries can work here too 

Я надеюсь, что вы получите ответ от этого.

Thanks $ i = 0; $ total = $ list-> fetchAll (PDO :: FETCH_ASSOC);

+0

как насчет Еогеасп цикла – rabbit

0

вместо getDataSource метода, который я предложил бы использовать $this->ModelName->setDataSource('mongo');

Например, если вы хотите получать данные от пользователя модели «Монго» исходной базы данных, которые вы упомянули в database.php, а затем установить, что оно будет выглядеть.

$ this-> User-> setDataSource ('Монго')

в database.php вы имеете следующий код

public $mongo = array(
     'datasource' => 'Mongodb.MongodbSource', 
     'persistent' => false, 
     'host' => 'localhost', 
     'login' => 'root', 
     'password' => 'root', 
     'database' => 'mongo_data', 
     'prefix' => '', 
     'encoding' => 'utf8', 
    ); 
+0

Хотя это может быть ценный намек на решение проблемы, хороший ответ также демонстрирует решение. Пожалуйста, [EDIT] (http://stackoverflow.com/posts/5419867/edit), чтобы предоставить пример кода, чтобы показать, что вы имеете в виду. В качестве альтернативы рассмотрите возможность написания этого комментария вместо –

Смежные вопросы