将PHP变量添加到LIMIT后,MSSQL查询无法正常工作

时间:2013-05-14 20:20:36

标签: php sql-server variables

这是我之前在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是否需要用单引号括起来? 提前谢谢

2 个答案:

答案 0 :(得分:1)

limit关键字转换为MSSQL / Sql Server域中的top

您需要根据MySQL / MSSQL对其进行抽象。记住:

  

PDO不提供数据库抽象;它不会重写SQL或   模拟缺少的功能。你应该使用一个完整的抽象   如果您需要该设施,则可以使用图层。

另外我会提到MSSQL取决于版本limit, offset可能不受支持。请查看this的MSSQL分页方法。

答案 1 :(得分:0)

1) 检查mssql_get_last_message()

2) 显示最终的SQL, 使用像:

这样的东西
$sql = "SELECT * FROM DriverAppInfo ORDER BY appdate LIMIT $startrow, 20";
$result = mssql_query($sql);

echo $sql;