LoginSignup
13
12

More than 5 years have passed since last update.

CakePHPでModelを使わずにDBを見る

Last updated at Posted at 2015-07-09

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をその都度変えたいとか
そんな用途にはもってこいだと思っています。

13
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12