Как я могу использовать альтернативное соединение с БД в Kohana 3.1 - PullRequest
3 голосов
/ 07 июня 2011

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

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

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

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-group.

1 Ответ

6 голосов
/ 07 июня 2011

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

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

$this->execute('group');

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

...