[英]MySQL query acting weird
我有:
mysql_connect($host,$username,$password);
@mysql_select_db("db") or die("Error: Cannot select database");
$query = "select password from users where name = '".$_POST['login-userid']."'";
$result = mysql_query($query);
if ($result == false) {
echo "Invalid username or password";
} else {
if (mysql_result($result,0) == hash('sha256', $_POST['login-password'])) {
echo "Logging in...";
}
}
由於某種原因,即使不應該執行mysql_result
行,我也會不斷收到錯誤消息(當用戶名不存在時,即$ result的值為false)。
如果有錯誤, mysql_query只會返回false
。 在這種情況下,沒有錯誤,只有0行。
您需要使用mysql_num_rows來獲取返回的行數。
您可以var_dump($result)
查看值,如果它是資源(根據php ),則您的查詢成功,如果返回的不是false。 這是布爾值false,但如果確實返回false,則仍應尊重您的==。
mysql_query($query);
返回查詢的結果集。 它不會返回true
或false.
您可以使用mysql_num_rows()
來檢查查詢結果是否存在,例如:
if(mysql_num_rows($query)) {
// exist
} else {
// does not exist
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.