[英]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.