【问题标题】:Avoid database calls using incorrect database connection避免使用不正确的数据库连接进行数据库调用
【发布时间】:2014-06-04 17:38:57
【问题描述】:

我正在开发一些大型软件,该软件打开了当前数据库连接并连接到一个数据库,但不幸的是,它没有在查询调用中使用链接标识符。

现在我必须打开与另一个数据库的连接;这工作正常,但是所有对数据库函数的调用现在似乎都使用我打开的第二个连接(它们使用不同的参数)。

有什么办法可以避免这种情况并让查询返回到使用打开的第一个连接,还是我必须在所有其他调用中添加link identifier

我可以关闭第二个连接,然后它会重新使用它吗?

我知道我也可以通过在查询中列出数据库来避免打开第二个连接,但我真的不希望两个数据库使用相同的凭据。

【问题讨论】:

    标签: mysql mysql-connect mysqlconnection


    【解决方案1】:

    从 php 文档中找到这个花絮..

    请注意,手册说明它有点误导:-

    "在与之关联的服务器上设置当前活动数据库 指定的链接标识符。随后每次调用 mysql_query() 将在活动数据库上进行。”

    第二个陈述不正确或充其量不清楚。

    mysql_query() 手册条目实际上正确地声明它将使用 mysql_connect() 默认打开的最后一个链接。

    因此,如果您有 2 个连接,则需要指定连接 当调用 mysql_query 或再次发出连接以确保第一次 数据库成为默认值,简单地使用 mysql_select_db 不会 使第一个数据库成为后续调用 mysql_query 的默认数据库。

    这可能只有在两个数据库不同时才明显 服务器。

    http://www.php.net/manual/en/function.mysql-select-db.php#108375

    看来,当我完成第二个数据库时,我将不得不运行另一个与第一个数据库的连接。

    【讨论】:

      猜你喜欢
      • 2020-10-10
      • 2020-10-09
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      相关资源
      最近更新 更多