从MySQL的C
API函数
mysql_real_escape_string描述:
如果需要更改连接的字符集,则应使用
mysql_set_character_set()函数而不是执行SET NAMES(或SET CHARACTERSET)语句。mysql_set_character_set()的工作方式类似,SETNAMES但也会影响所使用的字符集mysql_real_escape_string(),而SET NAMES不会。
因此,不要使用
SET NAMES/
SET CHARACTERSET而是PHP
mysql_set_charset来更改编码,因为它与MySQL的编码相对应
mysql_set_character_set(请参见
/ext/mysql/php_mysql.c的 源代码
__)。



