【发布时间】:2011-10-27 18:22:43
【问题描述】:
我正在开发一个中型(可能)PHP 系统,该系统在不同文件中随处打开 MySQL 连接,并将其制成全局变量以供以后包含的脚本访问。由于我正在创建另一个模块,因此我想避免使用全局变量并为每个页面请求保持相同的 mysql 连接。我目前的解决方案是这样的:
Class Db {
static public $dbConnectionArray = array();
}
对于每个请求,连接都将保存在静态数组中,并在以后引用。你认为会出什么问题?为什么?
想听听一些关于如何最好地解决这个问题的意见,因为我很想减少每次脚本运行时打开的连接数(目前,一个页面请求调用了大约 6-15 个 mysql 连接到至少 3 个不同的数据库)。
【问题讨论】:
-
如果你创建一个类来处理你所有的数据库交互,那么你就不必担心这个
-
为什么一个数据库有多个连接?
-
@prodigitalson:我没有深入研究这个过程,但我怀疑全局连接在脚本运行的中途被重新初始化。当我分析代码时,我发现 mysql_connect() 被多次调用某些函数调用,其中包括一个包含另一个的 .php 文件,依此类推......
-
嗯...自从我在生产中使用
mysql扩展程序以来已经 很长时间了(我现在只使用 PDO),但我认为它是“智能的”如果签名匹配,则抓取已经打开的连接。 -
@prodigitalson:是的,默认情况下是这样,但我们的代码指定了 new_link 标志以便每次都建立新的连接。
标签: php mysql static-variables