【问题标题】:Is it possible to run a JOIN query using multiple database connections using CodeIgniter?是否可以使用 CodeIgniter 使用多个数据库连接运行 JOIN 查询?
【发布时间】:2013-01-26 13:06:23
【问题描述】:

是否可以使用 CodeIgniter 的活动记录实用程序连接来自不同数据库的多个表?

我知道我必须在 database.php 中创建两个单独的数据库组并在模型中手动加载它们:

$this->DB1= $this->load->database('somename1', TRUE);
$this->DB2= $this->load->database('somename2', TRUE);

但是,我不知道如何使用它们连接来自两个独立数据库的多个表。

我怎样才能做到这一点?

【问题讨论】:

  • 你的问号键是卡住还是什么?几年前我有一个不工作的空格键;这让生活变得相当艰难。幸运的是 alt+0032 仍然输入了一个空格 :-D。
  • 更多 ????? == 更好的答案
  • @MitchWheat,问号与我的查询无关。
  • @MitchWheat,是的......

标签: mysql database codeigniter join


【解决方案1】:

据我所知,没有办法使用多个数据库实例(即您的 $DB1$DB2 变量)来做到这一点。

但是,如果您有一个可以访问两个数据库的用户,您可以在表名前加上他们的数据库名,这样就可以工作(至少在 MySQL 上——我还没有测试过其他任何东西)。例如这段代码:

$this->load->database('first');
$this->db->select('*')->from('users');
$this->db->join('test.hometowns', 'users.id = second.hometowns.user');
$query = $this->db->get();

将成功运行此查询,返回预期结果:

SELECT * 
FROM (`users`) 
JOIN `second`.`hometowns` ON `users`.`id` = `second`.`hometowns`.`user`;

再一次,我只用 MySQL 对此进行了测试,其他数据库可能在跨越数据库边界方面存在限制。它还要求用户帐户实际上具有读取两个数据库/表的权限。

【讨论】:

    猜你喜欢
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多