【发布时间】:2018-06-12 17:01:34
【问题描述】:
我正确地从第一个查询中得到结果但是,当我想在 WHERE 条件下的第二个查询中使用它们时,我得到查询错误 1064。如果我删除 WHERE 它将正常工作。此外,当我尝试在第二个查询代码中回显变量时,它会打印。变量仅在第二个查询中的 WHERE 中不起作用
$queryDate = "SELECT date , time from DATES where ID = $ID";
$result = mysqli_query($connection, $queryDate);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$date = $row['date'];
$time = $row['time'];
}
}
$queryCom = "SELECT * from DATES, BOOKING where dates.time = $time and booking.IDofFullDate= $date";
$result1 = mysqli_query($connection, $queryCom);
if (!$result1)
{
die("Query Faile". mysqli_errno($connection));
}
if ($result1->num_rows >0) {
echo $date;
echo $time;
}
【问题讨论】:
-
完整的错误信息通常会准确指出问题出在哪里……但您应该使用参数化查询;您的问题很可能是因为您在查询中使用的变量需要由
'分隔 -
这个脚本中的while循环有什么意义?您只会在最后一组日期和时间运行第二个查询
-
感谢 Uueerdo 现在可以使用了。有时这个问题会很疯狂
-
您遇到语法错误。 MySQL 通常区分大小写。如果您的表(DATES 和 BOOKING)是大写的,那么它们在 WHERE 语句中应该是大写的。此外,您应该使用某种类型的 JOIN 语句。