Php 推进ORM并发连接

Php 推进ORM并发连接,php,mysql,database,concurrency,propel,Php,Mysql,Database,Concurrency,Propel,我正在使用推进ORM进行一个项目,需要连接到两个不同的数据库以检索某些数据。我曾尝试在网上搜索指南,但没有成功,因为所有的解决方案要么是针对Symphony的,要么就是根本不起作用 我希望能够指定两个连接,并且能够在某些查询期间通过向查询传递连接别名在它们之间切换。但是,同时打开两个连接也是可以接受的 非常感谢您的任何帮助 谢谢, Dima根据,您可以通过以下方式在schema.xml文件中定义数据库连接: <?xml version="1.0" encoding="UTF-8"?>

我正在使用推进ORM进行一个项目,需要连接到两个不同的数据库以检索某些数据。我曾尝试在网上搜索指南,但没有成功,因为所有的解决方案要么是针对Symphony的,要么就是根本不起作用

我希望能够指定两个连接,并且能够在某些查询期间通过向查询传递连接别名在它们之间切换。但是,同时打开两个连接也是可以接受的

非常感谢您的任何帮助

谢谢, Dima

根据,您可以通过以下方式在schema.xml文件中定义数据库连接:

<?xml version="1.0" encoding="UTF-8"?>
<database name="bookstore" defaultIdMethod="native">
    <!-- table definitions go here -->
</database>
然后,您可以在设置中设置连接参数:

<datasources default="bookstore">
  <datasource id="bookstore">
    <adapter>mysql</adapter> <!-- sqlite, mysql, mssql, oracle, or pgsql -->
    <connection>
      <dsn>mysql:host=localhost;dbname=my_db_name</dsn>
      <user>my_db_user</user>
      <password>my_db_password</password>
    </connection>
  </datasource>
</datasources>
-编辑-

Prope似乎不支持数据库标记的别名属性,但您应该能够解决以下问题:

<?xml version="1.0" encoding="UTF-8"?>
<database name="bookstore_primary" defaultIdMethod="native">
    <!-- table definitions go here -->
</database>

<database name="bookstore_secondary" defaultIdMethod="native">
    <!-- table definitions go here -->
</database>

<datasources default="bookstore_primary">
  <datasource id="bookstore_primary">
    <adapter>mysql</adapter> <!-- sqlite, mysql, mssql, oracle, or pgsql -->
    <connection>
      <dsn>mysql:host=localhost;dbname=bookstore_primary</dsn>
      <user>my_db_user</user>
      <password>my_db_password</password>
    </connection>
  </datasource>
</datasources>

<datasources default="bookstore_secondary">
  <datasource id="bookstore_secondary">
    <adapter>mysql</adapter> <!-- sqlite, mysql, mssql, oracle, or pgsql -->
    <connection>
      <dsn>mysql:host=localhost;dbname=bookstore_secondary</dsn>
      <user>my_db_user</user>
      <password>my_db_password</password>
    </connection>
  </datasource>
</datasources>

看看这是否有效。最终,真正重要的是可以使用各自的DSN连接到两个数据库。

使用两个数据库是绝对必要的吗?1个以上的数据库通常是设计不好的结果。如果有必要,考虑一下数据库中的web服务谢谢回答Mike!这种方法遇到的问题是,在runtime-conf.xml中,datasource元素的ID必须与模式中的数据库名称匹配。对于我的项目,两个数据库都有相同的名称,因此如果我将它们都添加到运行时配置中,它们将具有相同的别名…:\不,不幸的是没有。我和我的团队最终找到了一些其他解决方案,以实现我们想要的功能。我们正在接近我们的最后期限,无论实现如何,我们都需要这些功能。我相信我们会在测试版发布后再讨论这个问题。