Подтвердить что ты не робот

CakePHP 2.1.x - запуск запроса без каких-либо моделей в AppController

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

Я узнал на одном форуме, что это можно сделать с помощью следующего кода в CakePHP 1.3

$db = ConnectionManager::getInstance();
$conn = $db->getDataSource('default');
$conn->rawQuery($some_sql);

Но это не работает в CakePHP 2.1.3. Любая помощь будет оценена по достоинству. Спасибо:)

4b9b3361

Ответ 1

Метод getDataSource() является статическим в CakePHP 2.x, поэтому вы должны иметь возможность использовать:

$db = ConnectionManager::getDataSource('default');
$db->rawQuery($some_sql);

Ответ 2

вы должны запустить этот путь

    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);
    }

Ответ 3

rawQuery не будет возвращать данные, вместо этого используйте запрос $db- > .

$db = ConnectionManager::getDataSource('default');
$data = $db->query($some_sql);