2016-09-21 115 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