2

私はphpでOOPを使用することを学んでいます.おそらく本当に単純な解決策であり、正しい検索用語を使用して見つけていないという問題がいくつかあります.

私は私のクラスを持っています

class user {

    function getUser() {

        if ($_SESSION['status'] == "authorized") {

            $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );

            $sql = "SELECT * FROM users WHERE username = :username";

            $st = $conn->prepare( $sql );

            $st->bindValue( ":username", $_SESSION['usernames'], PDO::PARAM_STR );

            $st->execute();

            $row = $st->fetch();

            $conn = null;

            return $row;

        }
    }
}

そして、テンプレートファイルで次を呼び出しています

$user = new user();
echo $user->getUser->icon;

うまくいけば、一番下の行は私が呼び出そうとしているものを示しています。基本的には、$row['icon']; を呼び出した後のSQL結果です。戻り配列から直接。

これは可能ですか?もしそうなら、誰かが私が見逃している用語を指摘できますか

前もって感謝します

4

3 に答える 3

1

次のように使用する必要があります。

$userobj = new User();
$user = $userobj->getUser();

$userこれで、変数にフェッチされたデータがあり、自由に出力できます。

echo $user['icon'];

私の例は既存のコードで動作するはずです。ユーザーの将来の値を変更する場合は、echo ステートメントのキーを変更するだけです。$user['someothervalue'];

于 2012-08-03T13:22:18.410 に答える
1

そのオブジェクトを引き続き使用する場合は、次のようにします。

class user {
    public $icon;

    function getUser() {

    if ($_SESSION['status'] == "authorized") {

        $conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );

        $sql = "SELECT * FROM users WHERE username = :username";

        $st = $conn->prepare( $sql );

        $st->bindValue( ":username", $_SESSION['usernames'], PDO::PARAM_STR );

        $st->execute();

        $row = $st->fetch();

        $conn = null;

        $this->icon=$row;

    }
    }
}

次に、次を使用できます。

echo $user->icon;
于 2012-08-03T13:20:31.923 に答える
1

以下を試してください:

print_r ($user->getUser);

それが配列を返す場合は、次のように試してください:

echo $user->getUser['icon'];
于 2012-08-03T13:22:06.193 に答える