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