这是我的功能/类
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没有值,所以它不会显示任何内容,我的查询是对的吗?我认为如果显示用户名,它应该有效。
答案 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);