2011-06-24 29 views
0

なぜこのエラーが発生しているのかわからない、それはすべてのエクスプレッションエンジンのチュートリアルとフォーラムに表示されていますが、ライン43は、私は問題を発見したスクリプト致命的なエラー:非オブジェクト式エンジンでメンバ関数query()を呼び出す

class upload_pictures 
{ 
    public function upload_pictures() 
    { 
     if (!isset($whats_gonna_happen)) 
     { 
      $uploads=''; 
      $cout=1; 
      if (!table_exists('albums')) 
      { 
            //line 43 below 
       $this->EE->db->query("CREATE TABLE albums(
        id INT NOT NULL AUTO_INCREMENT, 
        PRIMARY KEY(id) 
        name VARCHAR(50) 
       ") or die(mysql_error()); 
      } 
      $stuff=$this->EE->db->query('SELECT id, name FROM albums'); 
+0

を参照してください。 '$ this-> EE-> db'は' null'です。私はそれがセットアップを取得する場所を確認したい。 –

+0

ええ、$ this-> EEはどこに作成されましたか?このクラスのプロパティとして定義されていないようです。あなたが見た例が別のクラス内からこのメソッドを使用していないことは確かですか? $ thisキーワードは常にあなたのコードが現在のクラスを参照しているため、このメソッド呼び出しは$ EEプロパティを持つクラスの内部でのみ動作し、オブジェクトには$ dbプロパティに別のオブジェクトが格納され、そのオブジェクトはquery()という名前のメソッドを持つ必要があります。 – dqhendricks

答えて

2

に示され、それはあなたがスーパーグローバルに取得するには、コンストラクタで

$this->EE=& get_instance();

ラインを持っている必要がありますExpressionEngineの中でした。

関連する問題