[英]MSSQL query not working after adding PHP variable to the LIMIT
This is a query that I have used successfully in a MySQL environment before. 这是我之前在MySQL环境中成功使用过的查询。 When I try it using MSSQL.
当我尝试使用MSSQL。 It errors out on this statement:
出现以下错误:
$result = mssql_query("SELECT * FROM DriverAppInfo ORDER BY appdate LIMIT $startrow, 20")
$startrow is defined by the following: $ startrow由以下定义:
if (!isset($_GET['startrow']) or !is_numeric($_GET['startrow'])) {
$startrow = 0;
}
else {
$startrow = (int)$_GET['startrow'];
}
Does $startrow in the query need to be surrounded by single quotes? 查询中的$ startrow是否需要用单引号引起来? Thank you in advance
先感谢您
The limit
keyword translates to top
in MSSQL / Sql Server land. limit
关键字转换为MSSQL / Sql Server中的top
。
You'll need to abstract that depending on MySQL / MSSQL. 您需要根据MySQL / MSSQL对其进行抽象。 Remember:
记得:
PDO does not provide a database abstraction;
PDO不提供数据库抽象; it doesn't rewrite SQL or emulate missing features.
它不会重写SQL或模拟缺少的功能。 You should use a full-blown abstraction layer if you need that facility.
如果需要该功能,则应使用完整的抽象层。
Also I'll mention that with MSSQL depending on version limit, offset
might not be supported. 我还要提到的是,根据版本
limit, offset
MSSQL可能不支持limit, offset
。 Take a look at this for MSSQL pagination approaches. 看看这对于MSSQL分页方法。
1) check mssql_get_last_message()
1)检查
mssql_get_last_message()
2) show final SQL, use somethin like: 2)显示最终的SQL,使用诸如此类的东西:
$sql = "SELECT * FROM DriverAppInfo ORDER BY appdate LIMIT $startrow, 20";
$result = mssql_query($sql);
echo $sql;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.