在mysqli查询中使用会话用户名为“WHERE”

时间:2014-10-15 23:45:19

标签: php mysql mysqli

我知道我做错了什么,但我真的想知道它是什么。我能回应一下 使用<?php echo $_SESSION['username']; ?>登录用户的会话的用户名,但我不知道为什么当我尝试使用相同的技术查询数据库时它不起作用。我的代码在下面

我在页面中包含了这个

<?php session_start(); $username=$_SESSION['username']; ?>

以下是用于显示用户登录的会话的firstname和user_id的代码

    <?php
$conn = new mysqli('localhost', 'root', 'browser', 'test');

if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

$username = '$username';

$sql = "SELECT `user_id`, `firstname` FROM `members` WHERE `username`='$username'"; 
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    echo '<br /> user_id: '. $row['user_id']. ' - firstname: '. $row['firstname'];
  }
}
else {
  echo '0 results';
}

$conn->close();
?>

1 个答案:

答案 0 :(得分:1)

$username = '$username';

PHP variables inside single-quotes are not expanded.现在你的变量是文字字符串'$username',毫无疑问它不会匹配数据库中的任何用户。

您可能需要在第二个PHP脚本中设置$username = $_SESSION['username'];