2009-11-02 89 views
2

当我在我的浏览器中加载一个php页面时,它连接到数据库并运行一些sql ...假设我现在跟着一个链接,它会带我到同一网站中的另一个页面。发生了什么服务器明智?我的第一次连接到数据库关闭了,又重新打开了吗?这在大多数情况下会发生什么?PHP和db连接

+0

非常感谢 – Clara 2009-11-02 18:50:52

回答

1

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

我相信典型的例外情况(尽管我自己从来没有用过这种方式)就是使用类似mod_php.so(对于Apache)的地方,并且您将数据库连接对象作为用户会话状态的一部分进行存储。但我不认为这是推荐的做法。

请参阅http://php.net/manual/en/features.persistent-connections.php了解更多信息。

0

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

2

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

假设你正在运行MySQL,这不会是这种情况的唯一原因是如果PHP脚本使用mysql_pconnect,其中连接将保持打开状态。然而,通常不使用这种做法,除非MySQL服务器和PHP服务器具有其他进程未使用的低带宽连接。

0

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

还有一个数据库连接池的概念。当使用连接时,它不会关闭,但会被放置到等待再次使用的连接池中。一旦经过了指定的时间而没有使用连接,它就会关闭以节省资源。

池化连接节省了处理时间,不得不重新打开每个页面重新加载的连接。