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 サイトの他の関連記事を参照してください。