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

ale*_*lex 2 php database kohana kohana-3

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

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

当我尝试替换Db::query(Database::SELECT, $query)$this->db->query(Database::SELECT, $query),它失败了......

Kohana_Database_MySQL :: query()缺少参数3

我失踪的第三个参数是$as_object,它使用静态时所需的query()方法.我的猜测是静态方法为我传递了这个.它实际上回来了new Database_Query($type, $sql).

我想我做错了.

有没有办法重载Db::query()我通常在备用数据库配置的不同类中使用的静态?

谢谢

sha*_*and 5

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

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

当我尝试用$ this-> db-> query(Database :: SELECT,$ query)替换Db :: query(Database :: SELECT,$ query)时,它失败了...

现在您正在创建一个查询.

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

$result = $query->execute($this->db);
Run Code Online (Sandbox Code Playgroud)

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

您还可以快速加载数据库:

$query->execute('staff');
Run Code Online (Sandbox Code Playgroud)

哪个将在"员工"数据库上执行.