2015-07-11 78 views
0

我在ZF2的學說中有2個連接,但我需要在兩個數據庫中加入連接。最大的問題是:是否可以在兩個不同數據庫和連接的表上執行連接?交叉數據庫加入原則

'connection' => array(
      // Default DB connection 
      'orm_default' => array(
       'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver', 
       'params' => array(
        'host' => 'localhost', 
        'user' => 'root', 
        'port' => '3306', 
        'password' => '', 
        'dbname' => 'MYSQL_TEST', 
        'driverOptions' => array(
         PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'" 
        ) 
       ), 
      ), 

      // Alternative DB connection 
      'orm_alternative' => array(
       'driverClass' => 'Doctrine\DBAL\Driver\PDOSqlsrv\Driver', 
       'params' => array(
        'host' => 'localhost', 
        'user' => 'sa', 
        'port' => '', 
        'password' => 'test', 
        'dbname' => 'MSSQL_TEST', 
       ), 
      ), 
     ), 

實體MYSQL實例:

/** 
    * mysql_test 
    * 
    * @ORM\Table(name="mysql_table") 
    * @ORM\Entity 
    * @ORM\HasLifecycleCallbacks 
    * @ORM\Entity(repositoryClass="MYSQL\Entity\TestRepository") 
    */ 
    class Test 
    { 
     /** 
     * @var integer 
     * 
     * @ORM\Column(name="id", type="integer", nullable=false) 
     * @ORM\Id 
     * @ORM\GeneratedValue(strategy="IDENTITY") 
     */ 
     private $id; 

     /** 
     * @ORM\OneToOne(targetEntity="MSSQL\Entity\Test") 
     * @ORM\JoinColumn(name="id_mssql", referencedColumnName="id_mssql") 
     */ 
     private $mssql; 

我想就這兩個連接:(

回答

1

簡短的回答你可能尋找,不幸的是,沒有之間聯接。

有兩種不同的連接方式(在你的情況下爲mysql和mssql)共享數據和this post可能會讓你走上正確的軌道,如果你感到額外的冒險。

但我會建議只是分別從每個連接中選擇數據,然後在php中通過匹配來自每個結果的公共密鑰來實質模擬連接來操縱它。