PHP和数据库连接

时间:2009-11-02 18:44:59

标签: php

当我在我的浏览器上加载一个php页面时,它连接到数据库并运行一些sql ...假设我现在按照一个链接,它将我带到同一网站内的另一个页面。服务器明智的是什么?我与DB的第一次连接是否关闭,并再次重新打开?在大多数情况下会发生什么?

4 个答案:

答案 0 :(得分:2)

很可能一旦PHP处理了页面,就会关闭与数据库的连接,显然PHP的结果会被发送到浏览器并被用户查看。

假设你正在运行MySQL,那么情况就不是这样的唯一原因是PHP脚本使用mysql_pconnect,连接将保持打开状态。但是,除非MySQL服务器和PHP服务器具有其他进程未使用的低带宽连接,否则通常不使用此做法。

答案 1 :(得分:1)

是的,在大多数情况下,您的数据库连接将关闭并重新打开。特别是如果为每个页面重新启动PHP解释器,那么它别无选择,只能这样做。

我相信典型的异常(虽然我自己从未使用过)是你使用类似mod_php.so(对于Apache)的东西,并且你安排将数据库连接对象存储为用户的会话状态。不过,我不相信这是推荐的做法。

有关详情,请参阅http://php.net/manual/en/features.persistent-connections.php

答案 2 :(得分:0)

这是通常的情况。但是如果你在谈论MySQL,你可以使用mysql_pconnect来保持持久连接。

答案 3 :(得分:0)

这取决于PHP的开发方式。如果在每次交易后编码关闭,那么每次查看页面时都会重新打开。

还有数据库连接池的概念。使用连接时,它不会关闭,而是放入等待再次使用的连接“池”中。一旦在没有使用连接的情况下传递了指定的时间量,它就会被关闭以节省资源。

池连接节省了必须在每次重新加载页面时重新打开连接的处理时间。