2016-09-21 114 views
0

好吧,我使用簡單的SQL & PHP進行了這個小帳戶檢查,但它似乎返回false而不是true,如果帳戶存在。SELECT返回錯誤信息

public function ifExists($name) { 
    $handler = new sql(); 
    $sql = $handler->connect(); 
    $sql->real_escape_string($name); 

    $result = $sql->query("SELECT ime FROM users WHERE ime='".$name."'"); 

    if($result == false) { 
     if($result->num_rows != 0) { 
      $echo = 'account exists'; 
      return true; 
     } 
     else { 
      return false; 
     } 
    } 
} 

而現在這裏是檢查

if($result->num_rows != 0) { 
    $echo = 'account exists'; 
    return true; 
} 
else { 
    return false; 
} 

沒有與IME = '細胞瘤' 的行中的sql

+0

您的函數沒有所有可能的代碼路徑的返回值。 – paddy

+0

啊,是的,我應該把它設定爲假;我想(作爲默認回報)。謝謝小夥子! –

+1

在查詢中使用字符串插值可能會導致SQL注入攻擊,這是一個壞習慣。看看準備好的陳述:https://php.net/manual/en/mysqli.prepare.php – RegularlyScheduledProgramming

回答

1
if($result == false) 

query()只返回false上一個語法錯誤。此外,這是倒退。您應該只想運行代碼,如果它是而不是false。刪除該if塊,它應該工作

+0

你幾秒鐘就打敗我了 – RiggsFolly