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()我通常在备用数据库配置的不同类中使用的静态?
谢谢
然后我创建了一个新的基本模型,并添加了一个受保护的$ 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)
哪个将在"员工"数据库上执行.