我遇到了sqlsrv驱动程序的此语法的问题。准备声明与TS
这只是正常:
$sql = "SELECT * from Table1 WHERE (Table1.Time >= {ts '2017-05-08
00:00:00' } AND Table1.Time < {ts '2017-05-10 00:00:00' })";
$stmt = sqlsrv_query($conn, $sql);
$tbl = "<table>"
while ($row = sqlsrv_fetch_array($stmt)){
$tbl .= "<tr><td>".$row[0]."</td><td>".$row[1]->format('Y-m-d H:i:s')."</td><td align=\"center\">".$row[2]."</td></tr>";
}
$tbl .= "</table>";
echo $tbl;
但这不起作用了所有:
$sql = "SELECT * from Table1 WHERE (Table1.Time >= {ts ? } AND Table1.Time < {ts ? })";
$stmt = sqlsrv_prepare($conn, $sql, array('2017-05-08 00:00:00','2017-05-10 00:00:00'));
$result = sqlsrv_execute($stmt);
$tbl = "<table>"
while ($row = sqlsrv_fetch_array($stmt)){
$tbl .= "<tr><td>".$row[0]."</td><td>".$row[1]->format('Y-m-d H:i:s')."</td><td align=\"center\">".$row[2]."</td></tr>";
}
$tbl .= "</table>";
echo $tbl;
我得到这个错误:
An invalid parameter was passed to sqlsrv_execute. [message] => An invalid parameter was passed to sqlsrv_execute.)
有没有一种正确的方法将日期变量传递给{ ts ? }
声明?
当你得到一个空白页面时,启用PHP中的错误记录。您应该使用临时引擎从数据库分离UI。使用参数工作不同 - 删除{ts?}并只放一个?在位置。 –