为每个函数打开和关闭 SQL,还是打开 SQL 做所有事情然后关闭 SQL?
Posted
技术标签:
【中文标题】为每个函数打开和关闭 SQL,还是打开 SQL 做所有事情然后关闭 SQL?【英文标题】:Open and close SQL for each function, or open SQL do everything then close SQL? 【发布时间】:2011-07-09 19:55:29 【问题描述】:例如,我有以下内容:
connect.php close.php在connect.php中,它使用require_once('classes/database.php')
并使用$database = new database();
然后调用$database->connect();
我应该 require_once 说一个 header.php 和一个 footer.php 并有一个整体连接(每个主网页都包括这些),或者,当我需要它时打开和关闭它。例如,我有一个 functions.php 文件,其中包含我应该执行的功能:
public function test()
$db = new database();
// db setup here
$db->connect();
// do stuff here
$db->disconnect();
或
public function test()
// stuff here
谢谢!
【问题讨论】:
【参考方案1】:连接到数据库通常是一个相当昂贵的过程 - 耗时。尽可能避免多次连接以响应单个请求。
【讨论】:
【参考方案2】:打开到数据库的连接通常需要一些时间,所以我建议在脚本开头一劳永逸地打开它。
还好知道在脚本结束时,PHP 会自动关闭打开的连接,因此通常不需要显式关闭与数据库的连接。
为了有更健壮的代码,我会做这样的事情:
class Database
var $connection = null;
public function connect()
if($this->connection == null)
// setup the connection here
这样,每次您需要数据库连接时,您都可以调用$db->connect()
,但工作实际上只会在第一次调用时完成。这将确保即使在代码重构之后,例如在您的头文件中,数据库也会在需要时连接。
【讨论】:
以上是关于为每个函数打开和关闭 SQL,还是打开 SQL 做所有事情然后关闭 SQL?的主要内容,如果未能解决你的问题,请参考以下文章
在 PHP 中使用 PDO 打开的 SQL 连接是不是必须关闭