第一个查询很好,但第二个查询不会工作它只是死了。
我将$city
变量插入第二个变量并将其回显并显示正确
价值,但它是实际的:
$row = mysqli_query($dbc, $query)
or die('Error while querying the Database');
失败了......请帮忙!
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or WriteMessage('Error', 'Could not connect to the Database...');
//get user city...
$userID = $_SESSION['userID'];
$queryUserCity = "SELECT * from user where userID = $userID";
$GetResult = mysqli_query($dbc, $queryUserCity)
or die('Error while querying the Database');
$getRow = mysqli_fetch_array($GetResult);
$city = $getRow['city'];
$state = $getRow['state'];
$username = $getRow['username'];
echo 'username='.$username.' ';
echo 'city='.$city;
echo 'state = ' .$state;
$query = "SELECT * FROM adds where city = $city ORDER BY addDate ASC";
//fails right here...
/*-->*/ $row = mysqli_query($dbc, $query)
or die('Error while querying the Database');
echo $query;
exit();
while($row = mysqli_fetch_array($data))
{
答案 0 :(得分:1)
您正在尝试查找没有单引号的字符串。您使用integer
而不使用single quote
,但如果是字符串,则必须将single quote
与string
一起使用。
更改
$query = "SELECT * FROM adds where city = $city ORDER BY addDate ASC";
到
$query = "SELECT * FROM adds where city = '$city' ORDER BY addDate ASC";
并找出确切的错误,请尝试使用以下代码。
if (!mysqli_query($dbc, $query)){
echo("Error description: " . mysqli_error($dbc));
}
答案 1 :(得分:1)
如果城市是文本类型(可能是),您需要:
... where city = '$city' ...
但事实上,你不应该真的这样做,因为如果有人可以为他们的城市输入任意文本,它会让你注意到SQL注入攻击的可能性。
您应该开始研究参数化查询,因为它们可以保护您免受此类攻击。请参阅Exploits of a Mom和宝贵的explain-xkcd条目。