2012-05-04 55 views
3

当我在写与PDO和MySQL的PHP​​代码,我总是会创建连接,当我需要他们职责范围内,像这样:如何组织函数内数据库连接的处理?

result pseudo_function() { 
    create and open connection 
    do stuff 
    close connection 
    return result 
} 

现在,我开始在C编程,我已经看到指针是一个有趣的将整个连接作为参数传递给函数的方式。我想知道是否更好地传递函数之间的连接,直到整个用户请求被提供。

澄清:对于一个用户请求,可能会有1-5个调用函数,然后打开数据库,获取数据,执行某些操作,关闭并返回。

如果你保持连接打开,它也会使性能明智吗?

+1

只需通过使用一个参数DB连接到函数。 PHP通过引用传递对象,有点像一个指针。 – dqhendricks

回答

3

我所见过的大多数PHP代码的“标准习惯用法”似乎是“打开连接并保持打开状态”。

php.net似乎在此刻将下降,但是这两个环节可能很有趣:如果你正在运行

Apache,也许mod_dbd可能是一个很好的解决方案:

这里有没有关闭您的连接的影响商量好了:

3

最好保持连接打开并对该连接执行5次操作,而不是每次打开新连接。

您还可以使用单例存储库模式延迟加载数据库;版本库仅打开一次连接,在下次调用时它将返回一个缓存结果。

2

如果您使用PHP开发Web应用程序,那么一旦打开数据库连接并在脚本终止时关闭数据库连接就很常见(并且我认为这是最有效的方法)。在其他事情完成时保持连接打开并不会产生任何开销或根本不需要任何操作,但每次都重新连接。