从登录 SQL 表中获取用户 ID


fetching user id from login SQL table

我最近将我的代码从mysql切换到mysqli OOP,以便更好地练习。 我正在尝试从我的 mysql 表中获取user_id并将其保存在 $_SESSION['user_id'] 中。我已经尝试了许多不同的代码迭代,并工作了几个小时,但没有运气。 截至目前$_SESSION['user_id']什么也没返回。 它适用于我的旧 mysql 代码,所以我知道我的表不是问题。 我仍然是mysqli的新手,我将非常感谢在这件事上的任何帮助。

这是 PHP:

<?php
session_start();
$con = new mysqli("localhost","root","pw","db"); 
if (mysqli_connect_errno()) {
  printf("Connect failed: %s'n", mysqli_connect_error());
exit();
}
if(isset($_POST['submit'])){
  $query = "SELECT * FROM tapp_login WHERE username = ? AND password = ? LIMIT 1";
  $username = $_POST['user_name'];
  $password = $_POST['pwd'];
  $stmt = $con->prepare($query);
  $stmt->bind_param('ss', $username, $password);
  $stmt->execute();
  $stmt->bind_result($username, $password);
  $stmt->store_result();
  if($stmt->num_rows == 1){ //To check if the row exists
    while($row = $stmt->fetch()){ //fetching the contents of the row
      $_SESSION['user_id'] = $row[1];
      $_SESSION['LOGIN_STATUS']=true;
      $_SESSION['user_name'] = $username;            
      echo 'true';
    }
  }
  else {
    echo 'false';
  }
  $stmt->free_result();
  $stmt->close();
}
else{
}
$con->close();
?>

验证有效,用户名已成功存储在会话中。 我认为错误出在$row = $stmt->fetch()但我无法弄清楚。提前感谢!

我认为问题是这一行:

$_SESSION['user_id'] = $row[1];

我认为它应该是$row[0]或$row['user_id']。

(注意:我使用了"user_id",但它将是保存 ID 的列的名称)