[英]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的列的名称)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.