2017-02-17 23 views
0

のは、私はデータベースへの接続を持っている最初のもので2つのPHPファイル
を持っていると仮定しましょう。私は別のPHPファイルでそれを必要としているので、私はこのようなグローバル変数に割り当てました。
別のファイルに閉じるmysqliの接続

setconnection.php

<?php 
$servername = 'localhost'; 
$username = 'root'; 
$password = ''; 
$dbname = 'database'; 

// Create connection 
$GLOBALS['connect'] = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($GLOBALS['connect']->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
$db_selected=mysqli_select_db($GLOBALS['connect'],'database'); 
mysqli_set_charset($GLOBALS['connect'],'utf8'); 
?> 

そして私は、私は上記のPHPファイルからの接続を使用する別のPHPファイルを持っています。
このような接続を閉じるには、正しいでしょうか?

のindex.php

include_once "setconnection.php"; 
$GLOBALS['connect']->close(); 

答えて

0

良い質問!私は例のどこにもそれを見ません。接続を閉じると、メモリリソースが節約されます。 Phpは、スクリプトの実行後に非永続的な接続をクローズするはずです。しかし、必ずしもそうであるとは限りません。レガシーコードがクローズ接続を絶え間なく省略したときに、サーバーのCPUが過負荷になりました。 今のように、私たちは本質的にあなたがやっているのと同じものである、いくつかの機能のための接続を1つ、続けます。私たちのためにうまく動作します。

参考:私の意見ではhttp://php.net/manual/en/mysqli.close.php

+0

私の問題は、setconnection.phpで定義された関数があり、そのファイルの最後に接続を閉じると、他のPHPファイルで関数を呼び出すことができないということです。 – Daniel

+1

@Danielはしませんその後それを閉じますか? –

+0

@YourCommonSenseは、私はPHPが最終的に接続を閉じることを知っています。それはあなたが自分で接続を閉じていない場合、それはCPU過剰使用につながる可能と言うところが、私はここの周りにいくつかのアドバイスを発見しました。 – Daniel

-1

、これは合法です。接続が本当に開いているか、閉じていないかを確認してから、閉じてください。

-1

Are PHP include paths relative to the file or the calling code?Pekkaで述べたように、これは、完全に合法的である、

は...あなたがファイルを持っているとしましょう、 include()はちょうど

だから、現在実行中のスクリプトにコードを挿入することを覚えています呼ばれるexample.php

function example() { 
    echo 'Hello, world!'; 
} 

そして、あなたはのindex.phpに含める:

include 'example.php'; 
example(); 

これは、1つのファイルにすべてのものを持つことと同じです。

function example() { 
    echo 'Hello, world!'; 
} 

example(); 

だから、別のファイルに接続を閉じるに誤りが本当に存在しませんこれはあなたが接続を開いた場所ではありません。

+0

私は誰もあなたのアイデアに従うことを望みません –

+0

私はPHPであまり経験はありませんが、どうしてですか? – Condorcho

+0

接続を一度開く必要があるためです。 –

関連する問題