Da função da API C do MySQL
mysql_real_escape_string descrição
:
Se você precisar alterar o conjunto de caracteres da conexão, use omysql_set_character_set()função em vez de executar umSET NAMES(ouSET CHARACTER SET) demonstração.mysql_set_character_set()funciona comoSET NAMESmas também afeta o conjunto de caracteres usado pormysql_real_escape_string(), queSET NAMESnão.
Portanto, não use
SET NAMES /SET CHARACTER SET mas mysql_set_charset do PHP
para alterar a codificação, pois é a contrapartida do mysql_set_character_set do MySQL (consulte código-fonte de / ext/mysql/php_mysql.c
).