我正在尝试使用准备好的语句使用参数传递值来设置偏移量和限制(下一行):
$statement = $pdo->prepare('SELECT * FROM livro ORDER BY id OFFSET :offset ROWS FETCH NEXT :limit ROWS ONLY');
$statement->execute(['offset' => 0, 'limit' => 5]);
$livro = $statement->fetch();
错误返回:
为 TOP 或 FETCH 子句行计数参数提供的行数必须是整数。
但如果我尝试硬编码:
$statement = $pdo->prepare('SELECT * FROM livro ORDER BY id OFFSET 0 ROWS FETCH NEXT 5 ROWS ONLY');
$statement->execute();
$livro = $statement->fetch();
效果很好我知道使用 mysql 有必要使用PDO::ATTR_EMULATE_PREPARES => false限制工作。但我尝试使用 sqlsrv 并出现错误:
给定的属性仅在 PDOStatement 对象上受支持
有没有办法使用准备好的语句通过 PDO sqlsrv 设置获取和偏移值?
我的环境:Windows 10、PHP 7.3、MSSQL 2014
蝴蝶刀刀