symfony之如何使用 Symfony2 创建第二个数据库连接

xiaohuochai 阅读:17 2024-09-07 23:24:14 评论:0

我正在尝试将第二个数据库连接到我在 Symfony2 中的项目。首先,我在 parameters.yml 中添加了一些参数来创建连接。

然后,我编辑了我的 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 

最后,我尝试在我的 Controller 中使用以下代码建立连接:

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

并且,Symfony2 返回的错误:

Doctrine ORM Manager named "circutor3" does not exist.

circutor3 连接到我系统外部的数据库,因此我不需要创建实体或对象。我只需要执行一些 SELECT 来获取信息并使用数组存储它。

创建典型的 mysqli 连接是解决我的问题的最佳方法吗? 我不知道如何用 Symfony 解决这个问题。 提前谢谢你。

请您参考如下方法:

您可以按如下方式访问 Controller 中的数据库连接:

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

然后将连接用作:

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

一些帮助 herehere

希望对你有帮助


标签:数据库
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号