我正在尝试从表单中获取输入并与数据库中的$ username进行比较。
如果用户名不存在,则应该打印错误。
elseif (($_POST['user']) != ($this->mysqli->query("SELECT * FROM users WHERE username='" . $username . "'"))) {
$json['message'] = "User does not exist";
}
这不记录php错误,但它也不起作用。
答案 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);
}