【发布时间】:2010-10-11 02:40:28
【问题描述】:
我正在尝试合并到每个使用不同数据库的 php 代码库。我可以调用 DB::connect 哪个更改哪个 DB 被认为是活动的吗?或者我可以保存活动数据库并在调用连接后恢复它吗?
编辑:问题是一个代码库使用 mysql_query() 而不提供 $link_identifier,我不想更改所有调用,但我仍然希望能够打开第二个数据库连接。现在它的工作方式取决于我连接到数据库的顺序,这很痛苦。
【问题讨论】:
我正在尝试合并到每个使用不同数据库的 php 代码库。我可以调用 DB::connect 哪个更改哪个 DB 被认为是活动的吗?或者我可以保存活动数据库并在调用连接后恢复它吗?
编辑:问题是一个代码库使用 mysql_query() 而不提供 $link_identifier,我不想更改所有调用,但我仍然希望能够打开第二个数据库连接。现在它的工作方式取决于我连接到数据库的顺序,这很痛苦。
【问题讨论】:
DB::connect 创建一个连接资源。您可以同时连接到许多不同的数据库/服务器。连接资源包含正在使用的数据库。只需将返回的连接引用存储在不同的变量中就可以了。
同时连接多个数据库其实很常见。例如,为 SELECT 连接从属数据库,为 INSERT、UPDATE 和 DELETE 连接主数据库。
【讨论】:
当您创建到数据库的新连接时,通常会返回或存储资源链接作为数据库包装类的成员或其他任何东西。每次调用查询函数等时都必须使用此链接(例如存储在变量中)。如果您不指定链接,则将使用最后打开的链接,这可能是灾难性的。但是,如果您努力使用正确创建的链接,那么就不会有任何问题。
【讨论】: