检查用户名是否存在无效

时间:2014-05-01 19:01:30

标签: php mysql database

所以我使用此代码检查数据库中是否存在用户名。

  $sql = $db->query("SELECT FROM people (username, password, email) WHERE username=$username");


 if(mysql_num_rows($sql)>=1)
   {
    echo"name already exists";
   }
 else
    {
    $sqll = $db->query("INSERT INTO people (username, password, created, ip) VALUES ('{$username}','{$ph}',NOW(),'{$ip}' )") or die("Error creating user");

    }

但是当我运行它时,我得到了

  

(!)警告:mysqli_num_rows()要求参数1为mysqli_result,第17行的/Users/idrisk/Desktop/localhost/r.php中给出布尔值

我不确定自己该做什么。有没有更好的方法来检查用户名是否存在?

2 个答案:

答案 0 :(得分:1)

您收到该警告是因为您的mysql查询语法错误(它希望mysqli_result对象作为响应但收到false的布尔值。)

变化:

"SELECT FROM people (username, password, email) WHERE username=$username"

要:

"SELECT username FROM people WHERE username='$username'"

您不需要选择密码和电子邮件,因为您只是在比较用户名。无缘无故地选择密码和电子邮件只会浪费内存。

答案 1 :(得分:0)

更改此

  $sql = $db->query("SELECT FROM people (username, password, email) WHERE username=$username");

  $sql = $db->query("SELECT username, password, email FROM people  WHERE username= '$username' ");

你必须从表中选择列。