Podle Stefana Essera "mysql_real_escape_string() [is] není bezpečné, když SET NAMES se používá."
Jeho vysvětlení, z jeho blogu :
SET NAMES se obvykle používá k přepnutí kódování z výchozího na to, co aplikace potřebuje. To se děje způsobem, že
mysql_real_escape_stringo tomhle neví. To znamená, že pokud přejdete na nějaké vícebajtové kódování, které umožňuje zpětné lomítko jako 2. 3. 4.… bajt, dostanete se do problémů, protožemysql_real_escape_stringneuniká správně. UTF-8 je bezpečné…Bezpečným způsobem změny kódování je
mysql_set_charset, ale to je k dispozici pouze v nových verzích PHP
Zmiňuje však, že UTF-8 je bezpečné.