ホームページ > バックエンド開発 > PHPチュートリアル > PDO で MySQL プリペアド ステートメントで LIMIT を使用する方法は?

PDO で MySQL プリペアド ステートメントで LIMIT を使用する方法は?

DDD
リリース: 2024-11-30 16:37:10
オリジナル
230 人が閲覧しました

How to Use LIMIT with MySQL Prepared Statements in PDO?

プリペアド ステートメントを使用した 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート