CakePHP 2.1.x - 在AppController中运行没有任何模型的查询

Atu*_*vid 19 cakephp cakephp-2.0 cakephp-2.1

我试图在AppController上运行一个没有与之关联的Model的表.我不想使用模型,因为这个查询会在每个请求上触发,我猜使用模型会使它慢一点.

我在一个论坛中发现,这可以通过CakePHP 1.3中的以下代码实现

$db = ConnectionManager::getInstance();
$conn = $db->getDataSource('default');
$conn->rawQuery($some_sql);
Run Code Online (Sandbox Code Playgroud)

但这在CakePHP 2.1.3中不起作用.任何帮助,将不胜感激.谢谢 :)

dho*_*tet 34

getDataSource()方法在CakePHP 2.x中是静态的,因此您应该能够使用:

$db = ConnectionManager::getDataSource('default');
$db->rawQuery($some_sql);
Run Code Online (Sandbox Code Playgroud)

  • 您可能需要`App :: uses('ConnectionManager','Model');` (5认同)

Man*_*tel 8

你应该这样跑

    App::uses('ConnectionManager', 'Model'); 
    $db = ConnectionManager::getDataSource('default');
    if (!$db->isConnected()) {
       $this->Session->setFlash(__('Could not connect to database.'), 'default',            array('class' => 'error'));
    } else {
        $db->rawQuery($some_sql);
    }
Run Code Online (Sandbox Code Playgroud)