簡體   English   中英

登錄函數PHP的准備好的語句

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM