要点:
我希望能够针对外部数据库运行查询,以便在用户登录时获取所需的数据。我不希望此网站使用外部任何其他内容数据库。从长远来看,它可能需要能够推送数据,但具体来说,我不希望symfony尝试为外部数据库构建架构,它应该不管它并且不时允许连接。 / p>
详细说明:
我正在尝试创建与另一个symfony应用程序的数据库的临时连接,我似乎无法弄清楚如何做到这一点。
我有一个已设置并运行的现有symfony站点。我正在尝试为这个主站点的用户创建一种管理系统。管理系统将为每个选择加入它的用户进行单独部署,因此它也将拥有与之关联的自己的数据库。但是,此管理系统需要从主站点系统访问2或3个表。
我已经尝试在管理系统中的databases.yml中添加单独的条目来创建与两个数据库的连接,但是每当我构建所有数据库时,它都希望将我的模式放在两个数据库中。
我想出的最好的想法是在管理系统的所有表中放置连接:管理,并在主站点的所有表中放置连接:main_site。但是,这需要我在管理系统和主站点上维护yml文件,以确保它们保持最新状态。
我希望这一点有点清楚。
感谢您的帮助:D
答案 0 :(得分:5)
对于无法在远程站点上使用DQL的临时连接,只需通过Doctrine_Manager
打开连接:
$conn = Doctrine_Manager::getInstance()->openConnection('mysql://username:password@localhost/database', 'connection 2', false);
确保第3个参数为false,以便它不会成为当前连接。然后,您可以使用PDO在连接上运行查询:
$conn->exec('SELECT * FROM table WHERE conditon = ?', array('value'));
如果您希望能够使用DQL和远程模式,则必须按照您概述的方式执行此操作:定义两个连接并在两个位置维护模式(您的版本控制应该能够处理此问题)