0

这是我的函数/类

class user
{
    public function get_data($username)
    {
        global $pdo;
        $query = $pdo->prepare("SELECT * WHERE user_name = ?"); //display oldest to newest
        $query->bindValue(1, $username);
        $query->execute();
        return $query->fetch();
    }
}

以下是我的通话方式。

$users = new user;
$user = $users->get_data($_POST['username']);
$_SESSION['username'] = $user['user_name'];
$_SESSION['id'] = $user['user_id'];
$_SESSION['credits'] = $user['user_credits'];

这是我的 HTML

<li class="right"><a href="#">Hello, <?php echo $_SESSION['username']; ?>.</a></li>
<li class="right"><?php echo $_SESSION['credits']; ?></li>
<li class="right"><?php echo $_SESSION['id']; ?></li>

所以由于某种原因,只有$_SESSION['username'];打印在 html 中,credit/id 没有值,所以它不显示任何内容,我的查询对吗?我认为如果正在显示用户名,它应该可以工作。

4

2 回答 2

3

execute以前bindValue

    $query->execute();
    $query->bindValue(1, $username);

应该

    $query->bindValue(1, $username);
    $query->execute();

另外,您的查询是错误的

"SELECT * WHERE user_name = ?"   // SELECT from where?

应该是这样的

"SELECT * FROM myTable WHERE user_name = ?"
于 2013-06-19T07:42:26.537 回答
0

执行函数应该在绑定值之后调用

$query->execute();
$query->bindValue(1, $username);
于 2013-06-19T07:45:42.650 回答