MySQL查询未返回值


MySQL Query Not Returning Values

我正在尝试从MySQL数据库中获取值,其中Username列的值与传入的参数相同。传入的参数是"Griffin"。

function logIntoDb($username)
{
$users = mysqli_query($GLOBALS['con'], "SELECT Id, Username FROM Users WHERE $username=Username");
while($row = mysqli_fetch_array($users))
{
echo "'"Match: " . $row['Id'] . "=" . $row['Username'] . "'"";
echo " - " . ($username==$row['Username'] ? "true" : "false");
echo "<br/>";
}
}

上面不断返回一个空结果,这导致我的while循环抛出此警告。

警告:mysqli_fetch_array()要求参数1为mysqli_result,在第16行/home/a654/public_html/Top/Bottom/log.php中给定布尔值

这是用户表:

Id|CreatedOn|Username|Info|Status|Rank|Total|
1|0000-00-00 00:00:00|Peter|123|Good|High|111.11
2|0000-00-00 00:00:00|Griffin|123|Bad|Low|000.00

是不是有什么我没有看到的东西阻止了格里芬的争吵?

您似乎缺少用户名周围的撇号。更改此项:

"SELECT Id, Username FROM Users WHERE $username=Username"

进入:

"SELECT Id, Username FROM Users WHERE '$username'=Username"

您的查询应该是"SELECT Id, Username FROM Users WHERE '$username'=Username"

你需要单引号,因为它是一个字符串而不是一个数字。

将$username替换为'$username',前提是其他一切正常。