2012-01-26 8 views
0

私は、PDOインスタンスをそのコンストラクタに渡す必要があるphpクラスを持っています。コードは次のようなものになります。非CIクラスでCodeigniter db connectionを使用する方法

$pdo = new PDO($host, $username, $password); 
$myclass = new myClass($pdo); 

これはCIとの統合です。それは、すべてのDB接続を処理し、私はCIのデータベースオブジェクトではMyClassのインスタンスを作成することができた場合、それは非常に簡単になり

$this->db-> 

でアクセスされるデータベースクラスだが、より多くのものが含まれているように思われるCIの自動ロードPDOインスタンスだけです。私は試しました

$myClass = new myClass($this->db); 

それはまったく好きではありません。私はmyClassを書き直して、直接CIデータベースオブジェクトにアクセスすることができます(つまり、新しい接続を渡す必要はありません)が、実際にそのマンモスを開始する必要はありません!

このため、CI dbクラスを使用する方法はありますか? CIデータベース・ライブラリがすでにロードされている場合、上記のように新しいPDOインスタンスを作成しただけでは何の違いがありますか?

答えて

0

CIのデータベースクラスから現在のPDO接続を取得する簡単な方法はありません。しかし、必ずしもその必要はありません。独自のPDO接続を作成し、それをカスタムクラスに渡すことができます。 DBには2つのライブ接続がありますが、これは理想的ではありませんが、おそらくそれを実行できます。

+0

ありがとうスワットキン、それはちょっと私が考えたものです。私は2つの接続を避けようとしていましたが、それはちょっとばかばかしいようでした!私はクラスを書き直すことになるかもしれないと思う... – musoNic80

関連する問題