SQL大好きな人がCakePHPでもSQLを書きたい、Modelを使いたがらない人向け
Modelを使わずにDB参照する例
<?php
App::uses('AppController', 'Controller');
/**
* Test Controller
*
*/
class TestController extends AppController {
public function index()
{
App::import('Model','ConnectionManager');
$db =ConnectionManager::getDataSource('default');
$result=$db->query('select * from datatable1');
echo "<pre>";
print_r($result);
echo "</pre>";
exit();
}
}
ConnectionManager::getDataSource()で指定してる default とは
Config/database.phpで定義したDB設定です。
ということは、ここを書き換えるだけで、複数のDBを見に行くことができるわけです
複数DBを参照する例
App::import('Model','ConnectionManager');
//通常のDBを参照する
$db1 =ConnectionManager::getDataSource('default');
$result=$db1->query('select * from datatable1 where id=1');
//違うDBを参照する
$db2 =ConnectionManager::getDataSource('otherdb');
$result=$db2->query('select * from datatable2 where id=2');
何かしらの都合でDBが分散しているとか、
負荷分散でアクセスするDBをその都度変えたいとか
そんな用途にはもってこいだと思っています。