Mysql查询不分配/返回变量?

时间:2013-06-19 07:41:32

标签: php mysql

这是我的功能/类

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>

所以出于某种原因,只有html中的$_SESSION['username'];打印输出,信用卡/ ID没有值,所以它不会显示任何内容,我的查询是对的吗?我认为如果显示用户名,它应该有效。

2 个答案:

答案 0 :(得分: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 = ?"

答案 1 :(得分:0)

执行功能应该在绑定值

之后调用
$query->execute();
$query->bindValue(1, $username);