简体   繁体   English

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

[英]Mysql query not assigning/returning variables?

Here's my Function/Class 这是我的职能/班级

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();
    }
}

Here's how I do my Call. 这是我打电话的方式。

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

Here's my HTML 这是我的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>

So for some reason, only the $_SESSION['username']; 因此由于某种原因,只有$_SESSION['username']; print's out in the html, the credit/id doesn't have a value so it doesn't display anything, is my query right? 在html中打印出来,credit / id没有值,因此不显示任何内容,我的查询正确吗? I think it should work if the username is being displayed. 我认为应该显示用户名。

execute before bindValue ? bindValue之前execute

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

Should be 应该

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

Also , Your Query is wrong 另外 ,您的查询是错误的

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

Should be something like 应该是这样的

"SELECT * FROM myTable WHERE user_name = ?"

Execute function should be call after bind value 执行函数应该在绑定值之后调用

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM