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