2016-07-05 71 views
3

我試圖將第二個數據庫連接到Symfony2中的項目。首先,我加入了parameters.yml一些參數來創建連接。如何使用Symfony2創建第二個數據庫連接?

然後,我編輯config.yml,而現在的樣子:

doctrine: 
    dbal: 
     default_connection: default 
     connections: 
      default: 
       driver: pdo_mysql 
       host:  "%database_host%" 
       port:  "%database_port%" 
       dbname: "%database_name%" 
       user:  "%database_user%" 
       password: "%database_password%" 
       charset: UTF8 
      circutor3: 
       driver: pdo_sqlsrv 
       host:  "%database_host_circutor3%" 
       port:  "%database_port_circutor%" 
       dbname: "%database_name_circutor%" 
       user:  "%database_user_circutor3%" 
       password: "%database_password_circutor3%" 
       charset: UTF8 
orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     naming_strategy: doctrine.orm.naming_strategy.underscore 
     auto_mapping: true 

最後,我就先連接,用我的控制器下面的代碼:

$em = $this->getDoctrine()->getManager('circutor3'); 

而且,錯誤由Symfony2返回:

名爲「circutor3」的Doctrine ORM管理器不存在。

circutor3連接到我的系統外部的數據庫,所以我不需要創建實體或對象。我只需要執行一些SELECT來獲取信息並使用數組存儲它。

正在創建一個典型的mysqli連接解決我的問題的最佳途徑? 我不知道如何用Symfony解決這個問題。 預先感謝您。

回答

4

,你可以訪問如下控制器數據庫連接:

$connection = $this->getDoctrine()->getConnection('circutor3'); 

然後使用該連接爲:

$stmt = $connection->prepare($sql); 
$stmt->execute(); 
return $stmt->fetchAll(); 

一些幫助herehere

希望這個幫助

+0

嗨@IsaacBosca歡迎您! – Matteo

2

根據Symfony的文檔(http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html),你只定義了一個連接,而不是一個實體管理器:

你必須爲每個連接的entity_manager。

orm: 
    default_entity_manager: default 
    entity_managers: 
     default: 
      ... 
     circutor3: 
      connection: circutor3 
      mappings: 
       AppBundle: ~ 
+1

謝謝你的回答,但我只需要執行一些查詢,所以我只需要創建連接,而不是一個理財經理。無論如何,我欣賞你的回覆:) –

相關問題