关于mySQL和PHP的初学者问题,避免在每个页面上都连接到DB


Beginner question on mySQL and PHP to avoid connecting to DB on every page

我编写了一个简单的php/mysql网页,其中有page1.phppage2.php等。因为我在每个页面(或至少90%的页面)上都使用数据库,所以我在它们的顶部放置了标准的

mysql_connect("localhost"," "," ");
mysql_select_db(" ");
.
.
mysql_close();

与我的查询。

我的问题是我真的需要连接到每个页面上的数据库,或者有任何方法来避免这种情况,仍然保持连接?有些页面链接到其他页面,我可以利用SESSIONS发布一些变量,但我的问题是更全球化的东西。

网络在自然状态下工作。这意味着你不知道客户端是否会回来进行第二次请求。

无论如何,您绝对希望在每个页面上连接/断开与数据库的连接。这是唯一的方法,以确保您没有泄漏连接和网站可以保持响应。

大多数系统都内置了处理连接池的方法,这使得请求新连接的行为非常非常快,因此您不必担心。

您可以将mysql_pconnect用于持久连接,尽管它不会对您有太大帮助,而且要正确执行它可能会很麻烦。最好在每个页面上都连接,特别是当数据库服务器和php服务器在同一台机器上运行时。

尝试使用

mysql_pconnect() 
从PHP.net

"的行为与mysql_connect()非常相似,但有两个主要区别。

首先,当连接时,该函数将首先尝试找到一个已经打开的(持久)链接,该链接具有相同的主机,用户名和密码。如果找到一个,将返回一个标识符,而不是打开一个新的连接。

第二,当脚本执行结束时,不会关闭与SQL服务器的连接。相反,链接将保持打开状态以供将来使用(mysql_close()不会关闭由mysql_pconnect()建立的链接)。"

如果你只是想让它,这样你就不必硬编码到每个文件的顶部,在一个文件中编写连接代码,然后使用require /path/to/file/name.php,它将每次建立它注意:它可能是包含的,而不是需要的。