gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 20:06:43 24 4
gpt4 key购买 nike

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

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

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

Missing argument 3 for Kohana_Database_MySQL::query()

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

我觉得我做错了。

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

谢谢

最佳答案

I've then made a new base model, and added a protected $db variable and set it in the constructor to $this->db = Database::instance('staff').

您已经在 Controller 中加载了一个数据库。

When I try and replace Db::query(Database::SELECT, $query) with $this->db->query(Database::SELECT, $query), it fails with...

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

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

$result = $query->execute($this->db);

在 Kohana v3 中,查询和数据库是分离的,所以你必须告诉查询在哪个数据库上执行,而不是告诉数据库执行查询。查询将自行编译,然后调用 $db->query($sql) 本身。

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

$query->execute('staff');

这将在“员工”数据库上执行。

关于php - 我如何更改 Kohana 3 中使用的默认数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3129667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com