php - CakePHP 为模型使用多个数据库

标签 php mysql cakephp cakephp-model

是否有可能某些模型在一个数据库中而其他模型在另一个数据库中(使用相同的连接)?

我有许多只读表,我希望在我的系统的多个安装之间共享这些表。其他表需要按安装进行。举个例子,假设 users 是共享表,posts 是每个安装。

在一个模式(我们称之为“共享”)中,我们有 users 表,在另一个模式(“mycake”)中有 posts

通过创建指向共享数据库的新数据库连接,我已经能够从另一个数据库读取用户模型(尽管这两个数据库位于同一主机上,并且都可以使用相同的登录详细信息访问) .

class User extends AppModel {
    var $useDBConfig = 'sharedConnection';
}

问题是何时需要连接到 posts 表。它不会将架构名称添加到表名称之前,因此无法找到 posts

// what it does
SELECT * FROM users User INNER JOIN posts Post ...

// what I'd like it to do:
SELECT * FROM shared.users User INNER JOIN mycake.posts Post ...

所以基本上,有没有办法为模型分配一个完全限定的表名并强制它在所有查询中使用它?设置 var $useTable = 'shared.users '; 没有帮助......

最佳答案

This site有办法做到这一点,但有点 hacky。

关于php - CakePHP 为模型使用多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1788072/

相关文章:

mysql - Mysql 存储过程 BEGIN END

mysql inner 加入 group by

php - 无法通过 SMTP 发送电子邮件,因为 "550 - Relay Not permitted"

mysql - 属于通过连接表

php - 在php中将字符串转换为数字

php - 使用钩子(Hook)在 codeigniter 中查询日志

mysql - SQL 通过对行进行分组获取公共(public)值

ios - 我可以使用 cakePHP 开发 Android、Iphone、Windows 应用程序吗?

php - 来自 JSON 的 mysql 中的 bind_param

php - 如何从 PHP 将 MySql SQL_MODE 设置为 ANSI