【问题标题】:¿Can i set in Mysql the use of two different data base at the same time?¿ 我可以在 Mysql 中设置同时使用两个不同的数据库吗?
【发布时间】:2021-05-26 01:21:19
【问题描述】:

我在服务器中有一个站点,在其他服务器中有数据库。

我的网站同时连接了两个不同的数据库 没有任何问题,但是当我更改服务器的数据库时 我遇到了一个问题,我的网站无法识别两个连接。

我找到的解决方案是,在 mysql_connect 函数中的参数“新链接”上设置为 true, 一样:

$link_web = mysql_connect($host_web,$user_web,$pass_web, true)

但我对其他可能的解决方案有疑问。

我可以解决这个问题,在我的 php.ini 中将 sql.safe-mode 设置为“on”吗? 或者是否可以在不更改源代码的情况下以另一种方式解决这个问题?

【问题讨论】:

  • 但是当我更改服务器的数据库时我遇到了问题听起来我们需要知道你当时更改了什么,因为这似乎很可能问题的原因
  • mysql_ 函数已经过时了将近 10 年。它们不再受支持。如果您成功运行它们,您还必须运行不受支持的 PHP 版本,因为它们在 PHP 7 启动时已被删除。您应该使用 mysqli 或 PDO。紧急制定升级计划。
  • mysql上一个版本是MySQL 5.5.50,现在新服务器有MariaDB 10.5.6
  • 但是你现在运行的是什么版本的 PHP
  • 感谢 ADyson 的建议,如果我们正在考虑更新

标签: php mysql database mysql-connect safe-mode


【解决方案1】:

有很多方法可以欺骗 PHP 创建单独的连接 - 但它们充其量是多余的。您依赖于在数据库会话中持续存在的有关数据访问(您要连接的数据库)的事实。对于编写无法始终确定事件顺序的大型复杂应用程序,这不是一个好的起点。一个更简洁的解决方案是仍然调用 mysql_connect() 两次(以防数据库被拆分到不同的主机)让您的代码将返回的句柄视为 2 个单独的值,并在您的 sql 中指定 DML 适用于哪个数据库:

SELECT *
FROM yourdatabase.yourtable;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多