2011-04-27 77 views
1

我有一个叫做User的类,有2个方法,一个是“登录”,另一个是“注册”。 “登录”和“注册”都需要连接数据库。我是否需要每次连接db?我可以有一些连接一次只是为了减少连接db的时间?谢谢。我需要每次连接数据库在PHP?

回答

4

保持到数据库的连接打开需要Web服务器和数据库服务器上的专用资源,并且可用的打开连接数通常非常有限(范围为100)。连接过程通常非常快,不应该是一个问题。通过尽可能快地打开和关闭连接,扩展通常没有问题。

一如既往,首先尝试简单轻量级的方法(每次都会连接并尽快断开连接)。从那里你可以测量是否真的有问题。

+0

+1有关使用持久连接时的资源限制的警告。如果可能,你应该尽量避免这些。 – wimvds 2011-04-27 12:59:54

+0

+1对于一个很好和平衡的视角。 – anubhava 2011-04-27 13:23:32

0

是的,先生。每次用户连接到您的应用程序以执行登录操作o注册操作必须在最后打开和关闭与数据库的连接。 Keep Alive选项将会终止您的服务器。

1

是的,你需要每次连接。但只要您的用户名,主机和密码相同,您实际上可以通过使用mysql_pconnect()来减少连接负载。这将检查是否有任何具有相同连接DSN的活动资源。如果找到,它将返回相同的对象,只要它活着,而不是创建一个新的连接。

希望有所帮助。

1

在这种情况下,类用户应该期望在构造函数中提供一个数据库连接对象。 然后,构造函数应该将其保存为局部变量,并且login()和register()方法都会期望此变量包含有效的连接对象。

而且,请使用PDO而不是旧的mysql_*方法。这将为您提供一个连接对象,您可以在所有需要数据库连接的类中共享数据。