1
$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 - 布爾(假)字符串(10) 「2016年11月1日」 INT(184)浮點(9.5)浮(11)SQL返回false
我的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'的內容 –
我的意思是字符串一旦發生內插,所以我們可以看到發送給服務器的字符串。 (先修復日期問題) –
完成,我也會清理註釋。 – DavidG