0

私はphpアプリケーションでsimpleSQL-PDO
クラス を使用しており、次のコードで使用しています:

$where['username']=$_POST['username'];
$where['password']=md5($_POST['password']);

$DB = new DB();
$res=$DB->buildQuery('tbl_admin',$where);

localhost では正常に動作していますが、オンライン サーバーでは次のエラーが発生します。

Fatal error: Using $this when not in object context in DB.php on line 230  

行番号 DB クラスの 230 は次のとおりです。

$ item  = $ this- > instance- > quote ($ this- > escape ($ item)); 

私の問題はどこですか?

4

1 に答える 1

2

クラスのバグです。

buildQueryメソッドでは:

array_walk($where,'DB::prepareDbValues'); 

これはprepareDbValuesメソッドを静的に呼び出します (したがって、オブジェクト コンテキストで$thisはありません -> は定義されていません)。この問題を解決するには、次のように置き換えます。

array_walk($where,array($this, 'prepareDbValues')); 

そして、バグと修正をクラスの作成者に報告してください。

于 2012-08-24T08:24:21.297 に答える