MySQL查询不返回值

时间:2013-11-30 17:57:12

标签: php mysql

我试图从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中给出布尔值

以下是Users表:

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

是否有一些我没看到的东西会阻止Griffin行返回?

3 个答案:

答案 0 :(得分:3)

您似乎错过了用户名周围的撇号。改变这个:

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

进入这个:

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

将$ username替换为'$ username',只要其他一切正常