mysqlのマイクロチャネルのニックネームを保存

最近のプロジェクトのマイクロチャネルパブリック番号、初めてをやっている、いくつかの問題がで記録されています

最初のマイクロチャネルの愛称で直接保存されているユーザーの時間を節約し、後で何人かの友人不規則なニックネームをそれが問題を発見されたとき

最初のアプローチは、次のとおりです。

テーブルに設けられtp5.1ので、モデルを使用して

1      パブリック 関数 setNicknameAttr($値){
 2          戻り BASE64_ENCODE$値)。
3      }
 4      パブリック 関数 getNicknameAttr($値){
 5          リターン BASE64_DECODE$値)。
6      }
コードの表示

保存して得ることができたときに直接変換されるように

いくつかの問題がありますが、一つはバックグラウンド検索が、問題があるかどうニックネームに従うことです

MySQLは暗号化されたフィールドを解読するfrom_base64 BASE64_ENCODEによって、PHPに()関数)を持っている(ただし、MySQLのfrom_base64(とそこtp5.1を見つけられませんでした)だけでネイティブを使用することができ、機能

1  SELECT 
2      * 
3  FROM 
4      
5  6 7          from_base64(ニックネーム)LIKE " %の検索"
 8 AND `subscribe` = 1 9 10 ORDER BY 11      'create_time` ASC
           
   
コードの表示

第二の問題は、特定の判断や検索をするために暗号化されたフィールドを使用する場合、我々はまだ解読する必要があることを最初のようにして、実際にあります

第二のアプローチは、以下のとおりです。

オンラインは言いました

utf8mb4 1.ニックネームのデータベースフィールド

データベースのデフォルトのエンコード(文字セット)2. tp5.1プロファイルデータベース、そこUTF-8 utf8mb4します。

私は試していない第二の方法は、ちょうどそれを記録します

おすすめ

転載: www.cnblogs.com/wutianfei/p/11775434.html