ホームページ >データベース >mysql チュートリアル >PDO が LIMIT 句の変数に引用符を追加するのはなぜですか? それを修正するにはどうすればよいですか?

PDO が LIMIT 句の変数に引用符を追加するのはなぜですか? それを修正するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-24 00:17:10315ブラウズ

Why Does PDO Add Quotes to LIMIT Clause Variables and How Can I Fix It?

bindValue メソッドを使用した LIMIT 句のエラー

ページネーションを実装しようとした開発者が、bindValue メソッドの使用中に SQL 構文エラーが発生しましたLIMIT句を使用します。クエリは、LIMIT 部分の変数に一重引用符が追加されていることを示すエラーをスローしました。

さらなる調査により、開発者は文書化されている PHP の既知のバグ (バグ ID 44639) との潜在的な関係を発見しました。このバグは、PDO が LIMIT 内の非文字列変数に自動的に引用符を追加している可能性を示唆しています。

解決策:

この問題を解決する解決策は、値をバインド関数に渡す前に整数にキャストすることで提供されました。この変更により、SQL ステートメントは変数を正しく解釈し、構文エラーなしでクエリを実行できるようになります。更新されたコード スニペットは次のようになります:

$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);

以上がPDO が LIMIT 句の変数に引用符を追加するのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。