Singleton为我的网站工作


singleton does it work for my website

我有一个使用数据库的网站,我已经实现了单例模式连接到数据库。

但是我的网站使用大量的Iframe或内部页面,这些页面反过来在每个页面中使用单例模式连接到数据库。

我有几个问题要澄清1)如果用户a来到一个网站,他浏览了10个页面,是所有页面只创建一个连接还是每个页面都创建一个连接?

2)在子页面中创建的所有DB连接是使用相同的连接还是使用新的连接?

3)当用户从网站存在时,如何关闭DB连接?我发现棘手的关闭数据库连接,假设在我的index.php,如果它有menu.php, stats.php和profile.php,我无法弄清楚何时关闭连接?关闭连接的最佳做法是什么?

网站是建立在PHP和MYSQL数据库。

如果您使用单例,那么每个请求都建立一次连接。

  • 每10页。
  • 如果你通过iframes包含子页面,那么你将为每个子页面打开一个新的连接。
  • 一种选择是为你的网页提供一个单一的入口点(一个前端控制器),然后在请求被处理后关闭连接。如果您在index.php文件中包含php页面,那么在include/require语句之后关闭连接。

一些开发人员认为在页面末尾调用关闭连接是一种很好的做法。他们中的一些人还花时间在脚本的末尾释放变量和数组。对我来说,这是浪费字节。这样做是可以的,因为他们是良好的编码实践,但在我看来,我们应该瞄准快速加载网页和有效使用数据库的数据交换(往返)。事实是,当您关闭php脚本或导航到另一个页面时,除非两个页面都使用php会话,否则前一个页面及其上的所有内容都会死亡。它不再存在,php将其转储。

一旦发生这种情况,就没有办法检索任何信息,因为它已经被真正杀死了。至于数据库连接,它们自己关闭。

到服务器的链接将在脚本执行结束后立即关闭,除非通过显式调用mysql_close()提前关闭。这在手册中mysql_connect();

下有说明。

再一次,有那些喜欢把一行代码在他们的脚本调用mysql_close($DB)的末尾,但还记得浪费字节的事情吗?

如果它已经被完成了,那就别管它。这是我的2美分。