【发布时间】:2013-08-29 08:02:51
【问题描述】:
这是我的 PHP 代码:
require_once ('ConfigSQL.php');
$per_page = 10;
if(isset($_GET['page'])) {
$page = ($_GET['page'] - 1);
}
else {
$page = 0;
}
$QueryCharacter = mssql_query ("
SELECT Character.AccountID, Character.Name, Character.CtlCode,
AccountCharacter.Number, AccountCharacter.ID,
memb___id, memb_name, memb__pwd2, mail_addr
FROM Character, AccountCharacter, MEMB_INFO
WHERE Character.AccountID=AccountCharacter.ID AND
AccountID=memb___id AND AccountCharacter.ID=memb___id
LIMIT {$page},{$per_page}
");
$rows = mssql_fetch_row($QueryCharacter);
$pages = $rows / $per_page;
$pages = $pages ? ((int)$pages == $pages) : ((int)$pages + 1);
这就是我得到的错误:
警告:mssql_query() [function.mssql-query]:消息:第 2 行:',' 附近的语法不正确。 (严重性 15)在 C:\xampp\htdocs\Pages\EditCharacter.php 第 19 行
警告:mssql_query() [function.mssql-query]:第 19 行 C:\xampp\htdocs\Pages\EditCharacter.php 中的查询失败
警告:mssql_fetch_row():提供的参数不是第 21 行 C:\xampp\htdocs\Pages\EditCharacter.php 中的有效 MS SQL 结果资源
我知道问题出在我的 SQL 查询中的“LIMIT”。
查询应该如何?
【问题讨论】:
-
SQL Server supports TOP,没有限制
-
什么版本的 SQL Server?对于 2012,您可以使用 OFFSET...FETCH,而以前的版本分页要复杂得多(使用 CTE 和 ROW_NUMBER(),或者当您在前几页时可能使用 TOP)。 SQL Server 不支持 LIMIT(我很高兴它不支持 - 它不完全是标准的)。
标签: php sql-server select limit