Според Стефан Есер, "mysql_real_escape_string() [е] не е безопасно, когато SET NAMES се използва."
Неговото обяснение, от неговия блог :
SET NAMES обикновено се използва за превключване на кодирането от това, което е по подразбиране, към това, от което се нуждае приложението. Това се прави по начин, който
mysql_real_escape_stringне знае за това. Това означава, че ако превключите към някакво многобайтово кодиране, което позволява обратна наклонена черта като 2-ри 3-ти 4-ти... байт, ще се сблъскате с проблеми, защотоmysql_real_escape_stringне избяга правилно. UTF-8 е безопасен...Безопасният начин за промяна на кодирането е
mysql_set_charset, но това е достъпно само в новите версии на PHP
Той обаче споменава, че UTF-8 е безопасен.