プリペアド ステートメントを使用した MySQL の LIMIT キーワード
LIMIT キーワードを使用してプリペアド ステートメントを実行しようとすると、エラーが発生する可能性があります。 PDO (PHP データ オブジェクト) ライブラリを使用しています。これは、PDO がすべてのパラメータを文字列として扱うためで、LIMIT 引数に数値を使用すると解析エラーが発生する可能性があります。
この問題を解決するには、次のオプションを検討できます:
1.パラメーターを 1 つずつバインドします:
各パラメーターを適切なタイプに手動でバインドして、LIMIT 引数が整数として扱われるようにできます:
$comments->bindParam(1, $post, PDO::PARAM_STR); $comments->bindParam(2, $min, PDO::PARAM_INT); $comments->bindParam(3, $min, PDO::PARAM_INT);
2。準備済みステートメントを無効にする:
もう 1 つのオプションは、エミュレートされた準備を無効にすることです。これにより、引数が引用符で囲まれる可能性があります:
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
3. LIMIT 値を渡さない:
LIMIT 値をパラメータとして渡す代わりに、LIMIT 値をクエリ文字列に直接埋め込むことができます:
$query = sprintf('SELECT id, content, date FROM comment WHERE post = ? ORDER BY date DESC LIMIT %d, %d', $min, $max);
エミュレートされた準備の使用を回避します。またはパラメータのタイプを明示的に設定すると、MySQL で LIMIT キーワードを使用して準備されたステートメントを正常に実行できます。
以上がPDO で MySQL プリペアド ステートメントで LIMIT を使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。