簡體   English   中英

MySQL查詢行事怪異

[英]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);

返回查詢的結果集。 它不會返回truefalse.

您可以使用mysql_num_rows()來檢查查詢結果是否存在,例如:

if(mysql_num_rows($query)) {
   // exist
} else {
   // does not exist
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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