我正在使用MySqli作为MySql服务器。我设立的,用户可以在HTML的形式使用日期输入型输入日期形式:MySql使用html日期输入选择带日期时间的日期范围
<div class="ElHolder">
<form action="productionOutput.php" method="get">
<input type="date" name="packHistDate" required>
<input type="submit">
</form>
</div>
然后我使用PHP获取输入的日期,我试图在我的SQL使用它查询。我在我的代码中早先设置了$packHistDate = $_GET["packHistDate"]
。
$sql = "SELECT
PRODUCTS.ProductId,
PRODUCTS.Name,
DATE(PACKING_QUEUE.DatePackFinished) AS \"DateFinished\",
PACKING_QUEUE.Packets,
PACKING_QUEUE.SizeCode,
PACKING_QUEUE.RunSize,
BATCHES.BatchId
FROM PACKING_QUEUE
JOIN BATCHES ON BATCHES.BatchId = PACKING_QUEUE.BatchId
JOIN PRODUCTS ON PRODUCTS.ProductId = BATCHES.ProductId
WHERE PACKING_QUEUE.Status = 6 AND PACKING_QUEUE.DatePackFinished BETWEEN ".$packHistDate." AND NOW()
ORDER BY PACKING_QUEUE.DatePackFinished DESC";
$result = $conn->query($sql);
if (!$result) {
printf("Errormessage: %s\n", $conn->error);
}
PACKING_QUEUE.DatePackFinished是DATETIME,我认为这是在错误的出现。但是,我没有得到任何代码执行的错误消息,但所有日期都会返回。
我曾尝试使用DATE()将它们全部转换为日期,但仍然无法正常工作。
任何帮助是极大的appriciated
更新:增加单引号中".$datePackFinished."
所以它像'".$datePackFinished."'
围绕定了!
你是否对“$ packHistDate”内容感兴趣? –
回应您的查询并检查 –
'$ packHistDate'必须为'YYYY-MM-DD'格式。先检查一下。我认为它也必须被引用。 – MadMarc