ホームページ > バックエンド開発 > PHPチュートリアル > PHP での一重引用符のエスケープが MySQL の挿入にのみ影響する場合があるのはなぜですか?

PHP での一重引用符のエスケープが MySQL の挿入にのみ影響する場合があるのはなぜですか?

Patricia Arquette
リリース: 2024-11-03 11:55:29
オリジナル
834 人が閲覧しました

Why Does Escaping Single Quotes in PHP Only Affect MySQL Inserts Sometimes?

MySQL への挿入時に PHP で一重引用符をエスケープする

この記事では、MySQL にデータを挿入するときに PHP で一重引用符をエスケープする問題について説明します。

提供されたコードは 2 つの SQL ステートメントを示しています。1 つはデータベースにフォーム データを挿入するためのもので、もう 1 つはデータの取得、電子メールの送信、トランザクション詳細のログ記録のためのものです。このエラーは、一重引用符が 2 番目のステートメントに存在するが、最初のステートメントには存在しない場合に発生します。

動作の違いは、magic_quotes_gpc が有効になっている可能性があることに起因します。この機能は、$_GET、$_POST、および $_COOKIES からの文字列をエスケープします。データを保存して再度取得するときに、自動的にエスケープされない場合があります。

この問題を解決するには、mysql_real_escape_string() を使用して両方のスニペットの各文字列をエスケープする必要があります。

例with mysql_real_escape_string():

<code class="php">$order_id = mysql_real_escape_string($order_id);
$supplier_id = mysql_real_escape_string($supplier_id);
...</code>
ログイン後にコピー

MySQL に挿入する前に文字列をエスケープすると、一重引用符やその他の問題の可能性がある文字が正しく処理され、SQL インジェクションの脆弱性や一貫性のないクエリ実行が防止されます。

以上がPHP での一重引用符のエスケープが MySQL の挿入にのみ影響する場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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