【发布时间】:2016-11-01 13:05:00
【问题描述】:
$checkQuery = "SELECT Id FROM Events
WHERE Date = '$date'
AND VehId = $vehicleId
AND ((StartTime BETWEEN $timeOut AND $timeIn)
OR (EndTime BETWEEN $timeOut AND $timeIn))";
$checkResults = sqlsrv_query($conn, $checkQuery);
if (sqlsrv_num_rows($checkResults) > 0)
{
//do some stuff where the vehicle is already reserved.
} else { // this always executes.
var_dump($rowCounts, $date, $vehicleId, $timeOut, $timeIn);
//insert the new reservation.
}
//Var_dump - bool(false) string(10) "2016-11-01" int(184) float(9.5) float(11)
我的 SQL 查询不断返回 false,虽然我没有得到我的期望参数是 1 错误?总是执行 else 语句。因此,我的查询有问题,但下面是我的小提琴,它显示它按预期工作?我的目标是查询数据库,如果有任何结果返回,它不会插入新记录,因为车辆应该已经被保留。任何帮助表示赞赏! http://sqlfiddle.com/#!3/a86be/6
SELECT Id FROM Events
WHERE Date = '2016-11-01'
AND VehId = 184
AND ((StartTime BETWEEN 9.5 AND 11)
OR (EndTime BETWEEN 9.5 AND 11))
我认为很明显,但我确实验证了数据库中确实有一条记录应该返回。
【问题讨论】:
-
未引用的日期被解释为数学减法:2016 - 11 等?请出示
$checkQuery的内容 -
我的意思是字符串一旦发生插值,我们就可以看到发送到服务器的字符串。 (先修复日期问题)
-
完成了,我也会清理 cmets。
标签: php sql-server