Quoth MySQL docs - mysql_set_character_set()
:
此函数的工作方式类似于SET NAMES语句,但也设置了mysql-> charset的值,从而影响
mysql_real_escape_string()
使用的字符集
当它说"就像SET NAMES
语句"那样,是否意味着实际 MySQL查询SET NAMES
将被发送到服务器?
或者它是否意味着mysql_set_character_set
的功能模仿查询SET NAMES
但是没有实际的消息或数据将从Web服务器发送到数据库服务器?< / p>
答案 0 :(得分:1)
来自the manual(我的重点):
•
SET NAMES 'charset_name' [COLLATE 'collation_name']
SET NAMES
表示客户端将用于将SQL语句发送到服务器的字符集。 因此,SET NAMES 'cp1251'
告诉服务器,“此客户端的未来传入消息都在 字符集cp1251。“ 它还指定了服务器用于发送的字符集 结果返回给客户端。 (例如,它指示要用于列值的字符集 如果您使用SELECT语句。)
如果SET NAMES
命令影响从服务器到客户端的通信中使用的字符集,则必须以某种方式将此字符集信息传输到服务器。
所以,是的。此函数调用将导致数据传输到服务器。