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

如果您要继续使用该对象,我将执行以下操作:

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 回答
1

你应该这样使用它:

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

现在您在$user变量中拥有了获取的数据,并且可以随意输出它:

echo $user['icon'];

我的示例应该适用于您现有的代码,如果您想在未来更改用户的值,您只需更改 echo 语句中的键:echo$user['someothervalue'];

于 2012-08-03T13:22:18.410 回答