当值通过变量传递时,它会产生错误

时间:2016-03-15 15:18:24

标签: php mysql

我写信给代码来从mysql数据库中获取数据,

<?php
$host="localhost";
$user="root";
$pass="";
$database="users";
$con=mysqli_connect($host,$user,$pass) or die ("connection failure");

$day="Mon";
$status="false";
$timeInterval="08-10";
mysqli_select_db($con,$database) or die("databaseconnection error");
$result=mysqli_query($con,"SELECT hallId FROM lectureHall WHERE status=$status AND day=$day AND timeInterval=$timeInterval");
while($row=mysqli_fetch_assoc($result)){
    $tmp[]=$row;

}


echo json_encode($tmp);
mysqli_close($con);


?>

这段代码给了我一个警告,显示:

  

警告:mysqli_fetch_assoc()期望参数1为mysqli_result null

然而,当我直接给出值而没有像这样的变量传递

$result=mysqli_query($con,"SELECT hallId FROM lectureHall WHERE status='false' AND day='Mon' AND timeInterval='08-10'");

它给出了结果,为什么变量传递代码不起作用?是否有一种将String值传递给query的特殊方法。需要变量传递,因为我将通过Java HTTP post`为这些变量赋值,请帮我解决这个问题。提前致谢

2 个答案:

答案 0 :(得分:1)

您需要引用变量:

$result=mysqli_query($con,"SELECT hallId FROM lectureHall WHERE status='$status' AND day='$day' AND timeInterval='$timeInterval'");
while($row=mysqli_fetch_assoc($result)){
    $tmp[]=$row;

}

你也应该检查一下mysql错误。这会向您显示您的错误:

... your mysqli_query ...
if(!$result){
   die(mysqli_error($con));
}
... your while...

答案 1 :(得分:0)

试试这个:

$result = mysqli_query($con,"SELECT hallId FROM lectureHall WHERE status= '".$status."' AND day='".$day."' AND timeInterval= '".$timeInterval."' ") or die(mysqli_error($con));

最好使用单引号和双引号。

你也可以使用这个die(mysqli_error($ con))来确保在语法出错的情况下正确处理错误。

希望这有帮助。

和平!的xD