2016-09-27 8 views
0

解決方法がわからない問題に直面しています。さんが説明してみましょう:PHPクラス - インスタンスごとにMySQL接続を保存する

私は以下のクラスを持っている:

class MyClass{ 

    function MyClass($mysql_dbcon){ 
     $this->mysql_dbcon = $mysql_dbcon; 
    } 

    function execute(){ 
     include("myscript.php"); 
    } 

} 

myscript.php他のPHPスクリプトでcomunicateするのAjaxを使用するHTMLテンプレートです。これらの他のPHPスクリプトはクラスに直接含まれていないので、私は変数mysql_dbconを取得することができず、各インスタンスに対して異なる接続を使用します。のは、私は、次のインスタンスを持って推測してみましょう:

$i1 = new Myclass($dbcon1); 
$i1->execute(); 

$i2 = new Myclass($dbcon2); 
$i2->execute(); 

両方のインスタンスが他の処理スクリプトを呼び出すAjaxの機能を実行しますが、それらは独立したスクリプトの実行をしているのためにこれらのスクリプトは、インスタンスのmysql_dbcon変数にアクセスすることはできません。

どうすればこの問題を解決できますか?すべてのスクリプトがアクセスできるように、MySQL接続を$_SESSIONに保存するのは正しいですか?多分これ:私は、開発者がMySQLの接続を設定することが可能なクラスを作成したい

を達成したい何

$_SESSION['instance_identifier'] = $this->mysql_dbcon; 

と、各インスタンスは、データが表示されますので、各インスタンスは異なるデータベースにアクセスすることができます異なるデータベースから。問題は、そのデータの動的ロードです。

ありがとうございます。

+3

ロジックを "myscript.php"からクラスメソッドに移動する必要があります。追加のロジックを持つ別のファイルを含むメソッドを持つことは意味がありません。 myscript.phpはmysql接続を必要とするので、htmlテンプレートではなく、実際にdbロジックを組み込んだスクリプトであると見なすことは安全です。 –

+0

ここでは何を達成しようとしていますか(より大きな画像)?なぜDB接続を管理したいのですか?各アプリがその仕事をすることはできないのですか? –

+1

@Nolwennigはい、phpのコンストラクタの "java style"表記ですが、__constructは同じ働きをします – d3cima

答えて

関連する問題