【问题标题】:Should I connect to a database once in a constructor or within each method that works with a database?我应该在构造函数中还是在与数据库一起使用的每个方法中连接到数据库一次?
【发布时间】:2012-07-09 13:44:11
【问题描述】:

我有一个包含三个方法的类:

  • 插入
  • 更新
  • 删除

这些方法中的每一种都适用于数据库。哪种方法更好?

  1. 在构造函数中连接数据库,在析构函数中关闭连接,或者
  2. 分别在每个方法中打开和关闭连接?

【问题讨论】:

  • 抱歉,您可能会使用框架吗?或者你只是想写新的自行车?
  • 连接一次并保持打开状态。建立连接是一个昂贵的过程,并且可以根据需要在脚本中多次重复使用连接。
  • @Sergey 这是一个小项目,我认为我不需要框架
  • @TomasLietuva,查看codeigniter.com 它的轻量级,并为您节省建立数据库连接和保护输入的时间,它可以正常工作。当您可以使用轻量级框架时,即使是最小的项目也没有必要编写样板代码。
  • @TomasLietuva,如果你问这样的问题,可能是因为你实际上需要一个框架,你是一个试图解决一个常见问题的人,而且有很多以前已经解决过的人,框架不仅仅是 Zend 或 Symfony,它可能只有 Doctrine DBAL 和/或 ORM、Pear:DB 等。如果你真的不需要这个,那么使用原生 PDO 和/或PHP mysql_* 函数。

标签: php mysql-connect


【解决方案1】:

在调用方法之前,您只需连接一次您想要执行的操作。

您必须在方法之前进行连接,然后在每个方法中执行您的 mysql 查询。

如果您觉得需要,您可以在调用方法后断开连接,但通常不需要关闭连接,因为它会在页面加载后自动关闭。

【讨论】:

    【解决方案2】:

    这取决于用例。但在 99% 的情况下,您会在构造函数中打开连接。 (没关系析构函数。如果不是持久连接,PHP 会在脚本端销毁连接。)

    【讨论】:

      猜你喜欢
      • 2019-10-12
      • 2015-12-25
      • 2010-12-12
      • 1970-01-01
      • 2014-02-24
      • 2014-09-25
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多