2012-01-06 21 views
2

我正在使用一个mysql数据库,该数据库涉及在选择下拉菜单项时收集照片和人物姓名并将其显示在页面上。我正在用php脚本访问数据库。我该如何保留与数据库的连接

我习惯于每次访问数据库时都必须重新建立连接(我入侵了它并且工作正常),但是我希望这段代码看起来更专业一些。有没有人知道打开数据库连接的方式,这样我就不需要每次请求数据时都建立连接了?

+3

我认为您对专业人士有错误的想法。作为一名专业程序员,我很少会建议在没有特定原因的情况下长时间打开数据库连接。 – Bueller 2012-01-06 18:56:36

+0

这不是PHP通常用于MySQL的方式。除非您使用某种持久连接,否则PHP将在脚本终止时自动关闭MySQL连接。无论你是否打* close()*。 – 2012-01-06 18:58:36

回答

3

我假设你是指通过多次调用服务器来保持连接打开。在同一个脚本中,您只需打开一次连接。

mysqli文档显示如何启用persistent connections

但是,您应该对您的代码进行基准测试,以确保连接到数据库真的是一个性能限制因素。通过检查应用程序,查询和模式之间的相互作用,您可能会找到更大的回报。

使用旧mysql_pconnect功能,你可以运行到一个连接的老用户留下的东西在非洁净状态问题:

与持久连接的问题是,他们可以在 留客户不可预知的状态。例如,在客户端意外终止之前,表锁可能是 。重新使用此持续连接的新客户端 将获得连接“为 为”。任何清理都需要由新客户端进程 完成,然后才能充分利用持久连接,从而增加程序员的负担。

mysqli逻辑为你做了一大堆清理工作,所以这不是问题。

从文档,清理包括:

  • 回滚活动事务
  • 关闭和删除临时表
  • UNLOCK TABLES
  • 复位会话变量
  • 关闭预处理语句(总是发生PHP)
  • 关闭处理程序
  • 使用GET_LOCK()获取的释放锁定
+0

谢谢,你们俩。这是我需要知道的。 – Zack 2012-01-06 19:03:07