PDO SQLSRV を使用して、制限 (TOP) のあるテーブルからデータを選択しようとしています。しかし、私がこれを行うとき。
$limit = 20;
$sql = "SELECT TOP :rowsLimit * FROM TABLE ORDER BY id DESC";
$query = $this->db->prepare($sql);
$parameters = array(':rowsLimit' => $limit);
$query->execute($parameters);
このようなエラーが発生します。
Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 102 [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Incorrect syntax near '@P1'.
パラメータを削除して代わりに bindValue を追加しようとしましたが、これらのいずれでも同じエラーが発生します。
$query->bindValue(':rowsLimit', (int) trim($limit), PDO::PARAM_INT);
また
$query->bindValue(':rowsLimit', intval(trim($limit)), PDO::PARAM_INT);
では、PDO SQLSRV で TOP のパラメーターをバインドするにはどうすればよいでしょうか?