“mysql_set_character_set”是否将字节传输到MySQL服务器?

时间:2014-10-19 18:32:47

标签: mysql c driver libmysql

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>

1 个答案:

答案 0 :(得分:1)

来自the manual(我的重点):

  

SET NAMES 'charset_name' [COLLATE 'collation_name']

     

SET NAMES表示客户端将用于将SQL语句发送到服务器的字符集。   因此,SET NAMES 'cp1251'告诉服务器,“此客户端的未来传入消息都在   字符集cp1251。“ 它还指定了服务器用于发送的字符集   结果返回给客户端。 (例如,它指示要用于列值的字符集   如果您使用SELECT语句。)

如果SET NAMES命令影响从服务器到客户端的通信中使用的字符集,则必须以某种方式将此字符集信息传输到服务器。

所以,是的。此函数调用将导致数据传输到服务器。