【发布时间】:2014-05-18 02:15:16
【问题描述】:
我正在使用带有 SQL Server Native Client 11.0 的 php pdo 作为驱动程序。 显然我不能使用 LIMIT 子句,因为它是专有的,并且在尝试解决选择行范围时我一直遇到问题。
我的设置如下:
$statement = "SELECT ROW_NUMBER() OVER (ORDER BY USERS.name DESC) AS RowNum, CASE.no, CASE.type, CASE.date, CASE.ju, USERS.name, TBRLMF.rd_rl_description FROM dbo.CASE INNER JOIN dbo.USERS ON dbo.CASE.no = dbo.USERS.case_no INNER JOIN dbo.CMSTBRLMF ON dbo.USERS.relationship = dbo.TBRLMF.code ";
if($exact == 'checked'){
$exact = '=';
}else{
$exact = 'LIKE';
}
if($searchtype == 'users'){
$statement .= " WHERE USERS.name $exact '%$searchstring%'";
}else{
$statement .= " WHERE USERS.no $exac '%$searchstring%'";
}
$statement .= " AND RowNum BETWEEN :offset AND :max";
$statement = $dbh->prepare($statement);
$statement->bindParam(':offset', $offset, PDO::PARAM_INT);
$statement->bindParam(':max', $max, PDO::PARAM_INT);
只要我不包含代码行:
$statement .= " AND RowNum BETWEEN :offset AND :max";
它工作正常,但给了我所有的数据。
当包含该行时,我收到以下错误:-
使用消息“SQLSTATE[42S22] 捕获异常“PDOException”:找不到列:207 [Microsoft][SQL Server Native Client 11.0][SQL Server]列名“RowNum”无效。 (SQLExecute[207] at ext\pdo_odbc\odbc_stmt.c:254)' 在 C:\pub\test\Classes\Core.php:44
我不知所措,MSSQL 对我来说是新的。
非常感谢您的帮助。
【问题讨论】:
标签: php sql-server pdo