【问题标题】:PHP/SQL - Multiple Connections?PHP/SQL - 多个连接?
【发布时间】:2014-06-06 22:52:55
【问题描述】:

使用PHP连接MySQL数据库。

我想知道:
如果我想执行 2 个或多个单独的 SQL Select 查询(不是同时执行,而是一个接一个),我可以使用相同的 mysqli_connect"object(?)" 还是应该创建多个连接?

例如:

$con = mysqli_connect(blahblahblah);
$con2 = mysqli_connect(blahblahblah2);

不确定是否重要,但我很可能会连接到相同的架构。 如果不是,我想我可以在我的 SQL 中使用databaseschemaname.tablename

问题

  • 我可以使用相同的$con = mysqli_connect 还是应该创建多个连接?
  • 什么时候使用多个$con = mysqli_connect比较合适?
  • 在执行下一个 SQL 之前不“释放”查询的后果是什么?

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    只要您在第二个连接上不需要不同的特征(即登录、连接编码等),您可能希望重用相同的连接句柄。

    【讨论】:

    • 在执行下一个查询之前是否需要释放结果集?
    【解决方案2】:

    我可以使用相同的 $con = mysqli_connect 还是应该创建多个连接?

    是的,如果它用于相同的数据库、相同的架构、相同的连接参数,通常你会重复使用它。

    何时使用多个 $con = mysqli_connect 合适?

    当您必须连接到不同的数据库时,或者当您需要使用不同的参数进行连接时。除此之外,几乎从来没有。如果您需要运行多个查询,您实际上可以使用一个连接和 mysqli::multi_query 来执行此操作。见http://www.php.net/manual/en/mysqli.multi-query.php

    在执行下一个 SQL 之前不“释放”查询的后果是什么?

    最好在您不再需要结果时立即关闭它。也就是说,我知道人们不会明确地关闭结果或连接,而是在 PHP 页面自动完成处理时让连接获得。在池化连接时,这可能会让你在 Java 中变得非常糟糕。在 PHP 中还不错,尤其是在不合并时。 http://us3.php.net//manual/en/mysqli.query.php

    做个实验怎么样。不要在生产数据库上执行此操作,而是找到一个开发/沙盒数据库并编写一些 PHP 页面来打开 200 多个连接,而不会在它们之间关闭它们。观察您的 PHP(即 Apache)服务器上发生的情况,并观察发生这种情况时您的数据库服务器上发生的情况。在每个连接打开之间重复显式关闭。

    如果不是,我假设我可以在我的 SQL 中使用 databaseschemaname.tablename?

    是的,只要您连接的 db 用户对其他数据库或表具有权限,您就可以这样做。

    【讨论】:

      猜你喜欢
      • 2020-10-11
      • 1970-01-01
      • 2011-07-05
      • 2012-10-23
      • 2012-04-27
      • 2018-05-14
      • 2016-09-03
      • 2011-05-03
      • 1970-01-01
      相关资源
      最近更新 更多