2016-07-14 9 views
-1

最初にデータベース接続を呼び出す関数を作りたいと思います。完了すると、接続変数を使用してクエリを実行し、別の関数を使用してクエリを閉じます。phpで2つの異なる関数を使用してデータベース接続をオンまたはオフにするにはどうすればよいですか?

これを確立するには、2つの異なる機能を使用しますか?グローバル変数を作成する必要がありますか?

私は私のクエリで接続変数($ conn)を使用する必要がありますので、私のようにそれを使用する必要があります接続

function endcon(){ 
    $conn->close();} 

を破壊接続

function setcon(){ 
$conn= new mysqli($server,$username,$pass,$db); 
if ($conn->connect_error) { die($conn->connect_error);}} 

を確立グローバル変数?

+0

'setcon()'と 'endcon()'で '()'を使用していないのは誤っていますか? – C2486

+0

@Rishiを指摘してくれてありがとう、私はこれを電話で入力しています。このようにエラーに気づくのは難しいです。 –

+0

使用している場合は、クラス変数を使用できます。 '$ this-> conn'のように設定して破棄してください。 – C2486

答えて

0

グローバル変数を持つことは良い方法ではありません。

あなたのプロジェクトの範囲とアーキテクチャにもよりますが、私はデータベース接続を接続関数(あなたの場合はsetcon)の戻り値として持つことをお勧めします。データベースを使用するすべての関数は、接続変数を引数として渡す必要があります。

もっと複雑なプロジェクトの場合は、オブジェクト指向の方法で行うことができ、すべての共通チェックとエラー処理にも注意を払うデータベース接続オブジェクトを構築できます。これは、ある時点で別のデータベースに切り替える予定がある場合に推奨されます。

-2

これを試してみてください:

function connect($server, $username, $pass, $db) 
{ 
    closeConnect(); 

    $dbName = $db; 
    $dc = mysqli_connect($server, $username, $pass); 
    if (! $dc) { 
     echo "Connection to $dbName failed!"; 
    } 
    mysqli_select_db($dbName, $dc); 
} 

function closeConnect() 
{ 
    global $dc; 
    if ($dc) 
     @mysqli_close($dc); 
    $dc = null; 
} 

が、それはあなたのお役に立てば幸い!

関連する問題