PHPでは、データベースクエリで使用する前に文字列をエスケープするために、mysql_real_escape_stringとaddslashesという2つの関数が一般的に使用されます。どちらも同様の目的を果たしますが、考慮すべき微妙な違いがあります。
addslashes
この関数は、特定の文字の前にバックスラッシュを追加します: ' (一重引用符)、" (二重引用符) )、(バックスラッシュ)、および NUL (NULL バイト) の一部として解釈されるのを防ぐことで、SQL インジェクション攻撃から保護します。 query.
mysql_real_escape_string
この関数は、PHP 7.3.0 で非推奨となり、MySQL でエスケープする必要がある文字にバックスラッシュを追加します。 x00、n、r、x1a、' (一重引用符)、および " (二重引用符)。ただし、MySQL でのエスケープの実際の実装には追加の文字が含まれる場合があることに注意することが重要です。
mysql_real_escape_string でのエスケープ解除された文字の重要性
この 2 つの主な違い関数は、アッドスラッシュでエスケープされない文字にあります。
推奨事項
通常、addslashes の代わりに、mysql_real_escape_string などのデータ プロバイダーのエスケープ関数を使用することをお勧めします。これにより、使用されている特定のデータベースに合わせて文字列が適切に準備されることが保証されます。 mysql_real_escape_string は非推奨ですが、PHP の新しいバージョンには、MySQL クエリで文字列をエスケープするための同様の置換関数が搭載される可能性があります。
以上がMySQL クエリに addslashes の代わりに mysql_real_escape_string を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。