首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cakephp多个数据库中的关联Cakephp 2

cakephp多个数据库中的关联Cakephp 2
EN

Stack Overflow用户
提问于 2015-09-08 04:24:45
回答 1查看 122关注 0票数 1

如何从多个数据库中获取数据。

例子-

代码语言:javascript
复制
two database -> db_1 and db_2.
two tables -> users in db_1 database and countries in db_2   
    users table -> id , username, country_id, status
    countries table -> id, name, status

协会是-

代码语言:javascript
复制
App::uses('AppModel', 'Model');

class User extends AppModel 
{
var $name = 'User';
var $useDbConfig = 'bd_1';
var $belongsTo = array('Country'=>array('className'=>'Country'), );
}

在Controller中,当我使用此查询时,会得到一个错误

代码语言:javascript
复制
    $data = $this->User->find('all', array('conditions' => array('Country.status' => 1)));

    $this->set('data', $data);

错误: SQLSTATE42S22:列未找到:'where‘子句中的1054个未知列'Country.status’

EN

回答 1

Stack Overflow用户

发布于 2015-11-05 16:58:46

您不能开箱即用,因为如果您在Config/database.php中配置了两个数据库,它们将处于不同的连接中。

您可以做的是在php中进行两个分离的查找并连接数组数据,或者,如果您确实需要这样做,并且数据库位于同一台服务器上,则可以进行自定义查询:

代码语言:javascript
复制
$db = $this->User->getDataSource();    
$data = $db->fetchAll('SELECT * from db_1.users User LEFT JOIN db2.countries Country');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32449250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档