加入两个数据库表zend framework 1.12

时间:2015-10-20 10:32:29

标签: mysql database zend-framework

我在项目中使用了两个mysql数据库。一个数据库连接基本用户信息和另一个用于存储日常活动的数据库。现在需要组合两个数据库表。

使用用户信息获取用户日常活动,然后需要加入master数据库。

我在PHP中找到了解决方案。但我想在zend framework 1.12上找到解决方案吗?

我使用了用于获取不同操作的multidb功能。

resources.multidb.tb.adapter = "pdo_mysql"
  resources.multidb.tb.host = "localhost"
  resources.multidb.tb.username = "root"
  resources.multidb.tb.password = ""
  resources.multidb.tb.dbname = "@@@@@"
  resources.multidb.tb.default = true

  resources.multidb.pl.adapter = "pdo_mysql"
  resources.multidb.pl.host = "localhost"
  resources.multidb.pl.username = "root"
  resources.multidb.pl.password = ""
  resources.multidb.pl.dbname = "#######"

但我想查询不同数据库中的连接2表。

示例

  

SELECT db1.table1.somefield,db2.table1.somefield FROM db1.table1   INNER JOIN db2.table1 ON db1.table1.someid = db2.table1.someid WHERE   db1.table1.somefield =' queryCrit';

1 个答案:

答案 0 :(得分:1)

记住Zend's Join Inner declaration

public function joinInner($name, $cond, $cols = self::SQL_WILDCARD, $schema = null)

并且是'$ this',例如,Zend_Db_Table_Abstract实现,适配器设置为db1(带_setAdapter()),模式设置为“@@@@@”(这不是必需的,因为它将使用它作为默认值):

$select = $this->select(true)->setIntegrityCheck(false)
               ->from(array('t1'=>'table1'),array('somefield')
               ->joinInner(array('t1b'=>'table1'),
                          't1.someid = t1b.someid',
                           array('t1b.somefield'),
                           '######')
               ->where('t1.somefield = ?', $queryCrit); 

请注意内部连接方法的第四个参数。

希望这有帮助。