【问题标题】:Error getting result from second query using variables from first query使用第一个查询中的变量从第二个查询中获取结果时出错
【发布时间】: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 语句。

标签: php mysql sql


【解决方案1】:

在您的第二个查询中尝试以下操作:

$queryCom = "SELECT * from DATES as dates, BOOKING as booking where dates.time = $time and booking.IDofFullDate= $date";

【讨论】:

    猜你喜欢
    • 2013-11-01
    • 2013-03-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    相关资源
    最近更新 更多