Ответ 1
Метод getDataSource()
является статическим в CakePHP 2.x, поэтому вы должны иметь возможность использовать:
$db = ConnectionManager::getDataSource('default');
$db->rawQuery($some_sql);
Я пытаюсь запустить запрос в AppController в таблице, у которой нет связанной с ней модели. Я не хочу использовать модель, потому что этот запрос будет срабатывать по каждому запросу, и я предполагаю, что использование модели будет немного медленнее.
Я узнал на одном форуме, что это можно сделать с помощью следующего кода в CakePHP 1.3
$db = ConnectionManager::getInstance();
$conn = $db->getDataSource('default');
$conn->rawQuery($some_sql);
Но это не работает в CakePHP 2.1.3. Любая помощь будет оценена по достоинству. Спасибо:)
Метод getDataSource()
является статическим в CakePHP 2.x, поэтому вы должны иметь возможность использовать:
$db = ConnectionManager::getDataSource('default');
$db->rawQuery($some_sql);
вы должны запустить этот путь
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);
}
rawQuery не будет возвращать данные, вместо этого используйте запрос $db- > .
$db = ConnectionManager::getDataSource('default');
$data = $db->query($some_sql);