我正在创建一个函数来根据用户名和密码检查我的数据库,如果匹配则返回 true 值,如果不匹配则返回 false (我使用了一些打印值来为自己提供视觉帮助)。现在,我的数据库中唯一的字段是 id = 1、用户名 = muyiwa、密码 = 密码(无论如何是 SHA1 加密版本)。其他任何东西都应该抛出错误值的错误,或者在我的具体情况下,第 22 行:打印“否”。
然而,情况似乎并非如此。这是代码:
function checkLoginName($username, $password) {
global $mysqli;
$username = sanitizeData($username);
$password = SHA1($password);
$sql = "SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'";
$query = mysqli_query($mysqli, $sql) or die("Error: ".mysqli_error($mysqli));
$rows = mysqli_num_rows($query);
if ($rows == 1) {
//return true;
print "yes!";
} else {
//return false;
print "no";
}
}
checkLoginName("poo", "ha");
只是为了验证,“poo”和“ha”不应该返回“yes!”的值。因为它们不存在于数据库中,但确实存在!其他一切似乎都正常,我相信这是我的逻辑错误的 SQL 错误。