Stefan Esserによると、 "mysql_real_escape_string()
[is] SET NAMES
の場合は安全ではありません 使用されます。」
彼の説明、彼のブログから :
SET NAMESは通常、エンコーディングをデフォルトからアプリケーションが必要とするものに切り替えるために使用されます。これは、
mysql_real_escape_string
の方法で行われます。 これについては知りません。これは、2番目3番目4番目…バイトとしてバックスラッシュを許可するマルチバイトエンコーディングに切り替えると、mysql_real_escape_string
が原因で、問題が発生することを意味します。 正しく逃げません。 UTF-8は安全です…エンコーディングを安全に変更する方法は、
mysql_set_charset
です。 、ただし、これは新しいPHPバージョンでのみ使用できます
ただし、UTF-8は安全であると彼は述べています。