好的我有個問題。我試圖通過檢查他們輸入的電子郵件地址(用戶名)和密碼來驗證用戶的合法性。用戶表具有以下列:SQL PDO Query()方法
# Name Type Collation
1 User_ID int(10)UNSIGNED
3 Phone bigint(10)
4 Street_Address varchar(30) latin1_swedish_ci
5 Apartment int(5)
6 City varchar(35) latin1_swedish_ci
7 State varchar(35) latin1_swedish_ci
8 Zip_Code int(5)
10 Login_Password char(32) latin1_swedish_ci
11 UserType varchar(5) latin1_swedish_ci
在驗證電子郵件和密碼的輸入並滿足其約束條件後。我將一個布爾變量「$ insert」設置爲true。接下來,我有下面的PHP代碼:
$check= "SELECT Name FROM users WHERE Email='$emailLogin' AND Login_Password='$passwordLogin'";
if(($result= ($db->query($check))) != false) // <--- PROBLEM HERE
{
$resultArray = $result->fetch();
$name= $resultArray['Name'];
$checkID= "SELECT User_ID FROM users WHERE Name= '$name'";
$idResult= $db->query($checkID);
if(count($idResult) >0)
{
$idArray= $idResult->fetch();
$id= $idArray['User_ID'];
echo "userID is = ". $id;
$_SESSION['user']= $name;
$_SESSION['login']= true;
$_SESSION['userID']= $id;
//header('location:../view/userHome.php');
}
else
{
include("../view/error.php?message=19");
exit();
}
}
else
{
header("location: ../controller/login.php");
}
}//end function
長話短說「如果($結果=($ DB->查詢($檢查)))=假的!」這是我在上面的代碼,如果造成了我問題。如果沒有找到匹配的電子郵件地址和密碼,我不應該輸入if子句,但它是。 有人可以幫我指出我的代碼中的FLAW,或給我一個更好的方法來檢查。
萬一你需要 「database.php中」 文件放在這裏,它是:
<?php
$dsn = 'mysql:host=localhost;dbname=store';
$username = 'alex';
$password = 'asdf1234';
try {
$db = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
$error_message = $e->getMessage();
include('database_error.php');
exit();
}
?>
你的常識,我真的很感謝你的幫助。感謝您詳細解釋清楚的答案。 – user2917241