2013-05-14 118 views
0

这是我以前在MySQL环境中成功使用的查询。当我尝试使用MSSQL时。它的错误了这句话:将PHP变量添加到LIMIT后,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) 检查mssql_get_last_message()

2) 显示最终的SQL, 使用事端,如:

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

echo $sql; 
1

limit关键字转化为在MSSQL/SQL服务器的土地top

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

PDO不提供数据库抽象;它不会重写SQL或模拟丢失的功能。如果您需要该设施,则应该使用完整的抽象层 层。

另外我会提到,MSSQL根据版本limit, offset可能不支持。查看this的MSSQL分页方法。