0
我正在學習PHP並讓它與我們的SQL Server 2008R2數據庫交談。我想運行一個查詢,有2個日期參數需要通過。我知道我可以編寫日期參數到SQL中,但我想看看我在做什麼錯誤的佔位符方法如下:帶SQLSRV的PHP日期參數
$serverName = "server";
$connectionInfo = array("Database"=>"db", "UID"=>"user", "PWD"=>"pwd");
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die(print_r(sqlsrv_errors(), true));
}
$startDate = strtotime("2015-04-30");
$endDate = strtotime("2015-05-01");
$sql = "SELECT * FROM history
WHERE (ts >= ? and ts < ?)
ORDER BY ts";
$params = array($startDate, $endDate);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt == false) {
die(print_r(sqlsrv_errors(), true));
}
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo "<p>" . $row['vesselname'] . "</p>";
}
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
這將返回錯誤「算術溢出錯誤將表達式轉換爲數據類型日期時間」。 ts是一個日期時間字段。