[英]Prepared statement for login function PHP
我正在嘗試在PHP中編寫參數化的登錄函數。 該函數應獲取$ id和$ pass綁定並執行語句,並從數據庫中返回一個具有$ id,$ password和$ user_first_name的關聯數組。 檢查用戶ID和密碼驗證,如果為true,則會話應啟動並使用數據庫中的用戶名設置會話。 由於某種原因,我無法正常工作。 有什么建議么? 謝謝!
public function logIn($id, $password)
{
$stmt = $this->link->prepare("SELECT user_id, user_name, user_password FROM Users WHERE user_id = ? ");
$stms->bind_param('i', $user_id);
if ($stmt->execute())
{
$result = $stmt->get_result();
while($row = $result->fetch_array(MYSQLI_ASSOC))
{
$dbuser_id = $row['user_id'];
$dbpassword = $row['user_password'];
$dbuser_first_name = $row['user_first_name'];
}
if($id == $dbuser_id and $password == $dbpassword)
{
session_start();
$_SESSION['session_user_first_name'] = $dbuser_first_name;
}
else
{
session_unset();
echo "Credentials do not match";
}
}
}
你有
$stms->bind_param('i', $user_id);
但是您的函數簽名是:
public function logIn($id, $password)
因此,您可能想要:
$stms->bind_param('i', $id);
看看$stms->bind_param('i', $user_id);
:
stms
應該是stmt
$user_id
應該是$id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.