2011-07-11 7 views
5

私はPHPを初めて使いますが、プログラミングには新しいことはありません。私には奇妙な問題があります。それはとても簡単なことですが、私は解決策も簡単だと感じましたが、私は運が無ければ数時間試しました。同じクラスの別の静的関数から静的関数を呼び出すときのSQL照会の問題

は、私は、次の機能が含まれているモデルクラスのユーザーを持っている:

 
public static function byUsername($username) { 
    $row = DB::fetchOne('SELECT * FROM users WHERE username = ?', $username); 
    if (!is_null($row)) { 
     return new User($row); 
    } 
    return null; 
} 

右のユーザー名与えられたUserオブジェクトを返す、どこにでも期待どおりに動作します。 Userクラス自体を除いて:User::byUsername('a_valid_username')、またはself::という関数をUserクラスのさらに別の静的関数から呼び出すと、DB::fetchOne()関数はエラーまたは例外なしでnullを返します。

私には何が欠けていますか?

答えて

1

byUsernam()メソッドの中に問題はありません。

と呼ばれる環境の詳細を学ぶために右byUsernam()の先頭に

print_r(debug_backtrace()); 

echo $username; 

または

を実行します。

+0

'echo'または' var_dump'はそこでは動作しませんが、 'error_log'は動作します。 '$ username'がセットされ、' debug_backtrace'もうまく見えます。 – modemuser

関連する問題