Reputation: 924
I am trying to get values from MySQL database where the value of the Username column is the same as the parameter being passed in. The parameter being passed in is "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/>";
}
}
The above keeps returning an empty result, which causes my while loop to throw this warning.
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/a654/public_html/Top/Bottom/log.php on line 16
Here is the Users table:
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
Is there something that I am not seeing that prevents the Griffin row from being returned?
Upvotes: 0
Views: 102
Reputation: 3805
Your query should be "SELECT Id, Username FROM Users WHERE '$username'=Username"
You need the single quotes since it's a string and not a number.
Upvotes: 2
Reputation: 43434
You seem to be missing the apostrophes around the username. Change this:
"SELECT Id, Username FROM Users WHERE $username=Username"
Into this:
"SELECT Id, Username FROM Users WHERE '$username'=Username"
Upvotes: 3
Reputation: 4900
replace $username to '$username' provided everything else is fine
Upvotes: 0