2012-03-10 84 views
0

我在db.php中有以下代碼來連接到我的數據庫。我需要使用mysql_close(連接)嗎?

<?php 
$DB_HOST  = "localhost"; 
$DB_NAME  = "db"; 
$DB_USER  = "user"; 
$DB_PASSWORD  = "pass"; 

$con = mysql_connect($DB_HOST, $DB_USER, $DB_PASSWORD); 

if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db($DB_NAME , $con); 
?> 

在我的其他腳本中,我包括它使用:

include("db.php"); 

在某些情況下,我收到FF錯誤:

[10-MAR-2012十時47分20秒] PHP的警告:mysql_connect()函數[function.mysql-連接]:用戶已經DB_USER具有比 'MAX_USER_CONNECTIONS' 在/home/user/public_html/sc/db.php第8行

活動連接更現在,我想知道如果我需要關閉連接重刑如:

<?php 
include("db.php"); 

//other stuff here 

mysql_close($con); 
?> 

順便說一句,我有我的MySQL配置100 max_connections值。

我也研究有關持久連接,我相信我上面的代碼不是一個持久連接。

+0

始終釋放您不再需要的資源。 – 2012-03-10 23:19:32

+2

O_O ------------------------> – 2012-03-10 23:40:40

+0

看看屏幕的右側。在完全相同的主題上列出了十幾個問題 – 2012-03-10 23:41:37

回答

3

不,如果您在腳本結尾處關閉它,這不會對您有所幫助。 mysql_close()僅用於在結束腳本之前釋放資源,因爲只要腳本執行結束,連接就會關閉

-1

如果您不關閉連接,它們將保持打開狀態並佔用服務器上的寶貴資源。我猜那裏也存在安全問題,你不想冒險讓某人獲得聯繫。
我更喜歡將我的數據庫放在一個類中,並使用__construct創建連接,並使用__destruct關閉連接。如果你不熟悉類。創建和銷燬類時,會自動調用__construct和__destruct。

編輯:
最初本來就是一個例子。但我在這裏有一個基本的但是工作的mysql類https://stackoverflow.com/a/9651249/1246494

它顯示了mysql_close的用法以及我如何將它與類的析構函數關聯起來。問題是,任何網絡連接都應該關閉,不管你的數據庫是在遠程服務器上還是在本地主機上。