我有一个具有两个数据库连接的应用程序。第一个数据库是应用程序自己的数据库,第二个数据库来自另一个应用程序(同一服务器,不同的子域)。
对于第二个数据库上的 SQL 查询,我使用服务。
services.yml
login.company:
class: JP\CoreBundle\Service\Login\CompanyService
arguments:
em: "@doctrine.orm.login_entity_manager"
CompanyService.php
class CompanyService {
private $_em;
public function __construct(EntityManager $em){
$this->_em = $em;
}
public function getSomethingBySomething($something){ // Intentionally obscured method and parameter name
$conn = $this->_em->getConnection();
$sql = ''; // Intentionally removed SQL query
$stmt = $conn->prepare($sql);
$stmt->bindParam('something', $something); // Intentionally obscured real name to something
$stmt->execute();
return ($stmt->rowCount() == 1) ? $stmt->fetch(Query::HYDRATE_ARRAY) : false;
}
}
config.yml
doctrine:
dbal:
default_connection: analysis
connections:
analysis:
driver: "%database_driver1%"
host: "%database_host1%"
port: "%database_port1%"
dbname: "%database_name1%"
user: "%database_user1%"
password: "%database_password1%"
charset: UTF8
login:
driver: "%database_driver2%"
host: "%database_host2%"
port: "%database_port2%"
dbname: "%database_name2%"
user: "%database_user2%"
password: "%database_password2%"
charset: UTF8
orm:
default_entity_manager: analysis
entity_managers:
analysis:
connection: analysis
mappings:
JPCoreBundle: ~
login:
connection: login
auto_generate_proxy_classes: "%kernel.debug%"
问题:在 Symfony2 环境中正确使用多个数据库吗?可以通过某种方式改进吗?
最佳答案
Is this correct use of multiple databases in Symfony2 environment?
这就是Symfony2中多数据库的正确使用方式。
Could it be improved somehow?
与 Symfony2 中使用多个数据库不直接相关的唯一改进(如评论中所述)是使用 DQL 或 QueryBuilder,而不是直接使用连接。
关于php - Symfony2 中的多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23325560/