在数据库PHP中搜索现有用户

时间:2018-03-14 15:18:46

标签: php

我正在尝试从表单中获取输入并与数据库中的$ username进行比较。

如果用户名不存在,则应该打印错误。

elseif (($_POST['user']) != ($this->mysqli->query("SELECT * FROM users WHERE username='" . $username . "'"))) {
                  $json['message'] = "User does not exist";
                  }

这不记录php错误,但它也不起作用。

1 个答案:

答案 0 :(得分:0)

确保您通过POST请求收到了正确的用户名,这是常见的错误来源。只需记录它并检查错误文件。

然后,让我们分析你的mysql查询:

SELECT * FROM users WHERE ...

select 关键字之后,您应指定要返回的列。星号(*)表示你想要所有这些,如果你有一个列,用户名就可以了,但我假设你有更多。在这种情况下,请在代码中注意您要将一堆列与用户名进行比较。它会失败。

查看这个tutorial,熟悉使用php plus mysql会很有帮助。

我把下面的代码片段包裹起来,告诉你这样做的方法,有很多。它只是检查查询是否返回零行,这表明不存在具有给定用户名的记录。更好的方法是使用mysql函数EXISTS()

$username = $_POST["username"];

error_log("Checking if username:'$username' exists.", 0);

$conn = new mysqli($db_servername, $db_username, $db_password, $db_name);
$sql = "SELECT * FROM users WHERE username = '$username'";
$query = $conn->query($sql);

if ($query->num_rows == 0) {

    error_log("The username does not exist.", 0);

}