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

标签 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>

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

最佳答案

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 = ?"

关于php - Mysql 查询不分配/返回变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17185533/

相关文章:

php - 从表单插入数据

php - PHP中的真实通知/推送通知系统

php - php 中的缓存方法?

php - Ajax - responseText 工作但 responseXML 为空

php - 如何从 php/mysql 中的表中检索最新行?

php - 如何将 PHP 数组插入 SQL 数据库

mysql - 优化sql查询

mysql - 如何从表中选择不同的值

mysql - SQL更新,如果不存在则插入

PHP递归函数不循环更深