2012-03-10 15 views
0

DBに接続するためのdb.phpには次のコードがあります。mysql_close(接続)を使用する必要がありますか?

[10日 - 3月 - 2012年午前10時47分20秒] PHPの警告:私はFFのエラーが表示されるいくつかのケースでは

include("db.php"); 

:私の他のスクリプトで

<?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); 
?> 

は、私はそれを使用することを含んで:mysql_connect()[function.mysql-connect]:ユーザdb_userは、すでに8行目の/home/user/public_html/sc/db.phpに 'max_user_connections'以上のアクティブな接続を持っています

今、私はconnecを閉じる必要があります

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

//other stuff here 

mysql_close($con); 
?> 

私はMySQLの設定で100のmax_connectionsの値を持っています。

私は永続的な接続についても研究しています。私は上のコードが永続的な接続ではないと考えています。

+0

不要なリソースは、常に解放してください。 –

+2

O_O ------------------------> –

+0

画面の右側を見てください。まったく同じトピックにリストされているダースの質問がある –

答えて

3

いいえ、これはスクリプトの終わりに閉じても役に立ちません。 mysql_close()は、スクリプトの実行が終了するとすぐに接続が切断されるため、スクリプトを終了する前にリソースを解放したい場合に便利です。

-1

接続を閉じないと、開いたままになり、サーバー上の貴重なリソースを占有します。私はそこにセキュリティポイントがあると思う、あなたは誰かが接続を保持する危険にさらしたくありません。
データベースをクラスに入れ、__constructを使用して接続を作成し、__destructを使用して接続を閉じることをお勧めします。あなたのクラスに慣れていない場合。 __constructと__destructは、クラスを作成して破棄すると自動的に呼び出されます。

編集:
もともとは例であることが意図されていました。しかし、私はここで基本的だが動作するmysqlクラスを持っている。https://stackoverflow.com/a/9651249/1246494

これは、mysql_closeの使い方と、それをクラスデストラクタに関連付ける方法を示しています。要点は、データベースがリモートサーバーにあるかローカルホストにあるかにかかわらず、すべてのネットワーク接続を閉じる必要があります。

関連する問題