检查用户名是否存在且不起作用


Check if username exists not working

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

  $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中给定

我真的不知道该怎么办。有没有更好的方法来检查用户名是否存在?

您收到该警告是因为您的mysql查询语法错误(它需要一个mysqli_result对象作为响应,但收到了一个布尔值false(。

更改:

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

收件人:

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

你不需要选择密码和电子邮件,因为你只是在比较用户名。毫无理由地选择密码和电子邮件只是浪费内存。

更改此

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

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

您必须从表中选择列。