Php 如何更改Kohana 3中使用的默认数据库?

Php 如何更改Kohana 3中使用的默认数据库?,php,database,kohana,kohana-3,Php,Database,Kohana,Kohana 3,我在application/config/database.php中设置了一个名为staff的新数据库配置 然后,我创建了一个新的基本模型,添加了一个受保护的$db变量,并在构造函数中将其设置为$this->db=Database::instance('staff') 当我尝试用$this->Db->query(Database::SELECT,$query)替换Db::query(Database::SELECT,$query)时,由于 缺少关于 Kohana_数据库_MySQL::query

我在
application/config/database.php
中设置了一个名为
staff
的新数据库配置

然后,我创建了一个新的基本模型,添加了一个受保护的
$db
变量,并在构造函数中将其设置为
$this->db=Database::instance('staff')

当我尝试用
$this->Db->query(Database::SELECT,$query)
替换
Db::query(Database::SELECT,$query)
时,由于

缺少关于 Kohana_数据库_MySQL::query()

我缺少的第三个参数是
$as_object
,在使用静态
query()
方法时,不是必需的。我猜是静态方法为我传递了这个。它实际上返回
新数据库查询($type,$sql)

我想我做错了

有没有一种方法可以重载我通常在不同类中使用的具有备用数据库配置的static
Db::query()

谢谢

然后,我创建了一个新的基本模型,添加了一个受保护的$db变量,并在构造函数中将其设置为$this->db=Database::instance('staff')

您已在控制器中加载了数据库

当我尝试用$this->Db->query(Database::SELECT,$query)替换Db::query(Database::SELECT,$query)时,由于

现在您正在创建一个查询

接下来,您需要使用已创建的数据库执行查询:

$result = $query->execute($this->db);
在Kohana v3中,查询和数据库是分开的,因此您必须告诉查询在哪个数据库上执行,而不是告诉数据库执行查询。查询将编译自身,然后调用
$db->query($sql)
自身

您还可以通过快捷方式加载数据库:

$query->execute('staff');
将在“员工”数据库上执行