0

私は PHP と PDO の初心者で、おそらく非常に単純な構文エラーが山積みになっていますが、それを正しく Google で検索する方法がわかりません。これを行うために多くの方法を試しましたが、同じ文字列でエラーが発生するたびに。クラス内で PDO ベースのリクエストを取得するより良い方法はありますか? 接続部分を別のファイルとして含めるだけだと思っていましたが、 $db 変数で同じエラーが発生しました。

class prepeared{
    private $_conn = "xxx"; //there is a real value here instead of "xxx"
    private $_user = "xxx";
    private $_pass = "xxx";
    private $_db;
    function __construct(){
        try{
        $this->_db = new PDO ($this->_conn, $this->_user, $this->_pass);
        }catch(PDOException $e){
        echo $e;
        }
    }

    static function loginParams($login, $pass){
        $stmt = $this->_db->prepare("SELECT userid from users where login = ? AND pass = ?"); // <<<---- here comes en error "Fatal error: Using $this when not in object..."
        $stmt->bindParam(1, $login, PDO::PARAM_INT);
        $stmt->bindparam(2, $pass, PDO::PARAM_STR);
        $stmt->execute();
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        return $row['userid'];
    }
}
4

2 に答える 2

0

$this意味をなさない静的コンテキストで使用しています。staticメソッド宣言から削除するか、メソッドを作成$_db staticして に変更$this->_db->prepareself::$_db->prepareます。最初のオプションは、おそらくあなたの状況により適しています。

于 2013-02-11T21:45:48.230 に答える
0

静的関数は、それが使用されるクラスのインスタンスを参照するため、 to$thisを使用できません。$this静的関数は静的に呼び出されるため、クラス インスタンスは必要ありません。$this

于 2013-02-11T21:45:56.260 に答える