Как я могу использовать альтернативное соединение с БД в Kohana 3.1

Если запустить следующий бит кода из контроллера Kohana 3.1

$query = DB::select("select * from foo");
$results = $query->execute();
foreach($results as $result)
{
    var_dump($result);
}

Kohana попытается подключиться к базе данных, используя информацию из массива, возвращенного application/config/database.php, В частности, если будет использовать информацию, установленную в группе по умолчанию.

return array
(
    'default' => array
    (
        'type'       => 'mysql',
        'connection' => array(
            /**
             * The following options are available for MySQL:
             *
             * string   hostname     server hostname, or socket
             * string   database     database name
             * string   username     database username
             * string   password     database password
             * boolean  persistent   use persistent connections?
             *
             * Ports and sockets may be appended to the hostname.
             */
            'hostname'   => 'localhost',
            'database'   => 'kohana',
            'username'   => FALSE,
            'password'   => FALSE,
            'persistent' => FALSE,

Однако этот массив конфигурации принимает несколько элементов верхнего уровня (я думаю, что они называются db-groups). Как я могу / должен сказать Kohona 3.1 установить соединение и сделать запрос, используя информацию, которая установлена ​​в db-группе не по умолчанию.

1 ответ

Решение

Вы можете передать группу базы данных в качестве аргумента execute

Проверьте исходный код: строка 201 классов / kohana / database / query.php и Database::instance()

$this->execute('group');

Вы также можете написать запрос, начинающийся с $query = Database::instance('group')

Другие вопросы по тегам