ページング クラスを作成する際、MySQL ストアド プロシージャの 2 つのパラメータを渡すことを目的としています。 LIMIT句。ただし、次のような INT パラメータとクエリ構造を使用しようとすると、エラーが発生します:
<code class="sql">SELECT * FROM `MyTable` LIMIT MyFirstParamInt, MySecondParamInt</code>
このパラメータ化を実現する別のアプローチはありますか、それとも動的クエリの構築と実行が唯一の解決策ですか?
MySQL 5.5.6 より前:
バージョン 5.5.6 より前では、MySQL ストアド プロシージャでは LIMIT 句のパラメータ化がサポートされていませんでした。 。そのため、クエリを動的に構築して実行することが唯一の実現可能な方法でした。
MySQL 5.5.6 以降:
MySQL 5.5.6 以降は、次のようになりました。 INTEGER パラメータを使用して LIMIT 句と OFFSET 句をパラメータ化できます。これを行うには、以下に示すように、ストアド プロシージャのパラメーターを LIMIT と OFFSET に直接渡すだけです。
<code class="sql">SELECT * FROM `MyTable` LIMIT ? OFFSET ?</code>
この例では、 ?は、渡す予定の 2 つの INTEGER パラメーターのプレースホルダーを表します。
以上がMySQL ストアド プロシージャで LIMIT 句をパラメータ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。