我在application/config/database.php
中设置了一个名为staff
的新数据库配置。
然后我创建了一个新的基本模型,并添加了一个受保护的$db
变量,并将其设置在$this->db = Database::instance('staff')
的构造函数中。
当我尝试将Db::query(Database::SELECT, $query)
替换为$this->db->query(Database::SELECT, $query)
时,它会以...
缺少参数3 Kohana_Database_MySQL ::查询()
我遗漏的第三个参数是$as_object
,在使用静态query()
方法时,不是必需的。 我的猜测是静态方法为我传递了这个。它实际上返回new Database_Query($type, $sql)
。
我认为我做错了。
有没有办法重载我通常在备用数据库配置的不同类中使用的静态Db::query()
?
由于
答案 0 :(得分:5)
然后我创建了一个新的基本模型,并添加了一个受保护的$ db变量,并在构造函数中将其设置为$ this-> db = Database :: instance('staff')。
您已在控制器中加载了数据库。
当我尝试用$ this-> db->查询(Database :: SELECT,$ query)替换Db :: query(Database :: SELECT,$ query)时,它失败了...
现在您正在创建一个查询。
接下来,您需要使用您创建的数据库执行查询:
$result = $query->execute($this->db);
在Kohana v3中,查询和数据库是分开的,因此您必须告诉查询要执行哪个数据库,而不是告诉数据库执行查询。查询将自行编译,然后调用$db->query($sql)
本身。
您还可以快速加载数据库:
$query->execute('staff');
将在“员工”数据库上执行。