zoukankan      html  css  js  c++  java
  • mysql保存微信昵称

    最近做得都是微信公众号的项目,第一次做,所以有些问题都记录一下

    最初在保存用户微信昵称的时候都是直接保存的,后来朋友某些不规则昵称的时候才发现问题

    第一个办法是:

    用的是tp5.1,所以在表model里面设置了

    1     public function setNicknameAttr($value){
    2         return base64_encode($value);
    3     }
    4     public function getNicknameAttr($value){
    5         return base64_decode($value);
    6     }
    View Code

    这样在保存和获取的时候都能直接转换了

    有几个问题,一个是如果后台要按照昵称来搜索,会出现问题

    mysql有一个from_base64()函数,来把php通过base64_encode()加密的字段解密,不过没找到tp5.1中有配合mysql的from_base64()的功能,只能用原生了

     1 SELECT
     2     *
     3 FROM
     4     table
     5 WHERE
     6     (
     7         from_base64 (nickname) LIKE "%find%"
     8         AND `subscribe` = 1
     9     )
    10 ORDER BY
    11     `create_time` ASC
    View Code

    第二个问题其实跟第一个类似,就是如果要用到加密过的字段来进行某些判断或搜索,还是要通过解密的

    第二个办法是:

    网上说

    1.把数据库中昵称的字段改为utf8mb4

    2.把tp5.1的数据库配置文件中的数据库默认编码(charset),有utf-8改为 utf8mb4。

    第二个办法我没有试过,只是记录一下

  • 相关阅读:
    处理MVC中默认的Json方法返回时间的问题
    Linq To DataSet
    (C#)利用Aspose.Cells组件导入导出excel文件
    泛型转带逗号分割的字符串
    request参数集合绑定实体实现defaultmodebinder
    .NET反射
    用过属性来给标签加样式
    Servlet中的过滤器Filter用法
    JQueryUI确认框 confirm
    Openwrt自定义CGI实现
  • 原文地址:https://www.cnblogs.com/wutianfei/p/11775434.html
Copyright © 2011-2022 走看看