2012-01-18 5 views
1

最近CodeIgniter 2.1にアップグレードしました。以下のモデルコード(machforms_model.php)は、以前のCIインストールで正しく機能していました。私はまた、私のdatabase.phpファイルが以前のインストールと同じであることを確認しました。そのため、db設定は私の問題の原因であってはなりません。ここで表示されるエラーメッセージは次のとおりです。致命的なエラー:モデル/ machforms_model.phpの24行目のオブジェクトでないメンバ関数query()を呼び出します。ここで24行目が最初のクエリです。をCodeIgniter 2.1にアップグレードしました。モデルの複数のデータベースを使用しています。

machforms_model:php 
class machforms_model extends CI_Model 
{ 

    public function __construct() { 
     parent::__construct(); 
     $CI =& get_instance(); 
     $CI->machformsdb = $this->load->database('machforms', TRUE); 
     $this->machformsdb = $CI->machformsdb; 
    } 


     function deauthorize_user($user_guid) { 
     $sql = 'delete from ap_sessions where user_guid=?'; 
     $sql_result = $machformsdb->query($sql,array($user_guid)); // LINE 24  
    } 
} 

なぜ過負荷エラーが発生するのですか?他の外部ファイル/設定情報が原因である可能性がある場合は、助言してください。

答えて

0

$machformsdbは、あなたの関数deauthorize_userに定義されていません。 $this->machformsdbに電話する必要があります。

さらに、コンストラクタで$thisはすでにCI_Modelのインスタンスであるため、CodeIgniterシングルトンインスタンスを取得する必要はありません。

public function __construct() { 
    parent::__construct(); 
    $this->machformsdb = $this->load->database('machforms', TRUE); 
} 
+0

非常に高く評価されています。なぜ私の(明らかに不調な)コードがpre-2 CIで機能したのか不思議です。再度、感謝します! – goldfinger

関連する問題