ホームページ  >  記事  >  バックエンド開発  >  MySQL 挿入のために PHP で一重引用符をエスケープする方法

MySQL 挿入のために PHP で一重引用符をエスケープする方法

DDD
DDDオリジナル
2024-11-02 00:49:30898ブラウズ

How to Escape Single Quotes in PHP for MySQL Insertion?

MySQL 挿入のための PHP での一重引用符のエスケープ

一重引用符 (') を含むデータをデータベースに挿入するときに、MySQL エラーが発生することがあります。この問題を解決するには、適切な手法を使用して一重引用符をエスケープすることが重要です。

コード スニペットでは、2 つの INSERT クエリを使用してフォーム データをデータベースに追加しています。

<code class="php">INSERT INTO job_log ...
VALUES
(...)</code>
<code class="php">INSERT INTO message_log ...
VALUES
(...)</code>

クエリ 1:

最初のクエリは、GET、POST、COOKIE 変数から文字列をエスケープする magic_quotes_gpc を使用している可能性が高いため、一重引用符をエスケープしなくても適切に機能します。

クエリ 2:

文字列に一重引用符 (「O'Brien」など) が含まれている場合、2 番目のクエリは失敗します。最初のクエリとは異なり、2 番目のクエリの文字列はエスケープされていません。

この問題を回避するには、データベースに文字列を挿入する前に mysql_real_escape_string() を使用して文字列をエスケープする必要があります。これにより、一重引用符の前にバックスラッシュ () が追加されます:

<code class="php">INSERT INTO message_log ...
VALUES
(...)</code>

例:

<code class="php">$escapedString = mysql_real_escape_string("O'Brien");
$query = mysql_query("INSERT INTO message_log ... VALUES ('$escapedString', ...");</code>

文字列のエスケープ:

次のようにすることをお勧めします。エラーが発生していない場合でも、文字列をデータベースに挿入する前に必ずエスケープしてください。これにより、SQL インジェクション攻撃が防止され、データの整合性が確保されます。 PHP では、mysql_real_escape_string() または PDO ライブラリの bindingParam() メソッドを使用して、文字列を効果的にエスケープできます。

以上がMySQL 挿入のために PHP で一重引用符をエスケープする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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