从微信登陆已经是非常普遍的登陆方式了,在数据库设计时也应该考虑相关性。一般存储open_id、图标、昵称就够了。其中昵称要特殊注意,否则可能就像这样:
mysql : 1366 Incorrect string value 吧啦吧啦……
这是因为微信的昵称用了特殊字符,比如UNICODE的emoji扩展区。mysql的utf8 default是无法存储的,位数不足。参考:附链接1
对应字段应修改为utf8mb4,存储过程的参数也应该修改(附链接2):
CREATE PROCEDURE `emoji`(text varchar(20) CHARSET utf8mb4) BEGIN SELECT text; END
测试这个问题可以用:
select unhex(‘F09F8D83‘)
或
INSERT tb(`text`) VALUES(unhex(‘F09F8D83‘))
链接1:http://www.cnblogs.com/lampbrotherIT/p/5794742.html
链接2:https://stackoverflow.com/questions/17650662/creating-a-stored-procedure-with-utf8-strings