PHP / SQL - 多个连接?

问题描述 投票:1回答:2

使用PHP连接MySQL数据库。

我在想: 如果我想执行2个或更多单独的SQL Select查询(不是并发,但是一个接一个),我可以使用相同的mysqli_connect“对象(?)”还是应该创建多个连接?

e.f.:

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

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

问题

  • 我可以使用相同的$con = mysqli_connect,还是应该创建多个连接?
  • 什么时候使用多个$con = mysqli_connect是正确的?
  • 在执行下一个SQL之前没有“自由”查询的后果是什么?
php mysql sql
2个回答
2
投票

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

是的,通常你会重复使用它,如果它是相同的DB,相同的模式,相同的连接参数。

什么时候使用多个$ 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

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

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

是的,只要您要连接的db用户具有其他数据库或表的权限,您就可以执行此操作。


3
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.