我写信给代码来从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`为这些变量赋值,请帮我解决这个问题。提前致谢
答案 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