0

PDO を使用して User オブジェクトを設定しようとしています。

コードを少し簡略化しましたが(SQLなど)、基本的には次のとおりです。

    Class User
    {       
        protected $id;  
        protected $email;
        protected $password;

        public function tokenCheck()
        {
            $sql = 'SELECT * FROM blah LIMIT 1';

            $STH = $this->DBH->prepare($sql);
            $STH->setFetchMode(PDO::FETCH_INTO, $this);
            $STH->execute();

            $result = $STH->fetch();
        }

    }

私が呼び出すもの:

$User->tokenCheck();

ユーザー オブジェクトを var ダンプすると、次のようになります。

object(User)#1 (7) { ["id":protected]=> NULL [ ["email"]=> NULL ["password":protected]=> NULL ["token":protected]=> NULL }

すべてのプロパティをパブリックに設定しようとしましたが、同じ結果になりました。すべての値は NULL のままです。

このSOの答えは私にとってもうまくいきませんでした。

4

2 に答える 2

0

やってみました

$STH->fetchAll(PDO::FETCH_CLASS, "User");

データが入力された User クラスをインスタンス化します。

于 2013-03-26T11:21:25.343 に答える
0

問題は、ID、電子メール、およびパスワードを User クラスに選択しようとしているが、それらは保護されていることです。列名がプロパティ名を定義するため、プロパティを除外することもできます。

Class User
{       
    PUBLIC $id;  
    PUBLIC $email;
    PUBLIC $password;

    public function tokenCheck()
    {
        $sql = 'SELECT * FROM blah LIMIT 1';

        $STH = $this->DBH->prepare($sql);
        $STH->setFetchMode(PDO::FETCH_INTO, $this);
        $STH->execute();

        $STH->fetch();
    }

}
于 2013-11-13T20:11:25.673 に答える