将PHP变量添加到LIMIT后,MSSQL查询不工作


MSSQL query not working after adding PHP variable to the LIMIT

这是我以前在MySQL环境中成功使用过的查询。当我尝试使用MSSQL。下面的语句出错:

$result = mssql_query("SELECT * FROM DriverAppInfo ORDER BY appdate LIMIT $startrow, 20") 

$startrow定义如下:

if (!isset($_GET['startrow']) or !is_numeric($_GET['startrow'])) {
  $startrow = 0;
} 
else {
  $startrow = (int)$_GET['startrow'];
}   

查询中的$startrow需要用单引号括起来吗?提前谢谢大家

关键字limit在MSSQL/Sql Server环境下翻译成top

你需要根据MySQL/MSSQL抽象它。记住:

PDO不提供数据库抽象;它不重写SQL或模拟缺失的功能。您应该使用成熟的抽象如果你需要这个设施,请分层。

我还会提到,根据版本limit, offset可能不支持MSSQL。看看MSSQL分页方法。

1)check mssql_get_last_message()

2)显示最后的SQL例如:

$sql = "SELECT * FROM DriverAppInfo ORDER BY appdate LIMIT $startrow, 20";
$result = mssql_query($sql);
echo $sql;