2019年3月

之前常用的mcrypt_encrypt()方法已经在php7.1版本之后弃用了

<?php
/**
* openssl 实现
*/
define('KEY', '12f862d21dcfeafb57bckfrrt5yuiopf');
$iv= md5(time().uniqid(),true);
# 加密 md5->true 为TRUE - 原始 16 字符二进制格式,FALSE - 默认。32 字符十六进制数
$str="Hello, world!";
echo $strEncode= base64_encode(openssl_encrypt($str, 'AES-128-CBC',KEY, OPENSSL_RAW_DATA , $iv)); # AES-256-CBC

/**
* 解密
*/
echo "<hr>";
echo openssl_decrypt(base64_decode($strEncode), 'AES-128-CBC', KEY, OPENSSL_RAW_DATA, $iv);

输出

aymCoIKkiDy2W3ecjKC0FA==


Hello, world!

在mysql运行group by查询语句的时候报1140或者1055错误是因为sql-mode设置的问题。

运行mysql>select @@sql-mode; 查询sql-mode模式

|ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |

ONLY_FULL_GROUP_BY:

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么将认为这个SQL是不合法的,因为列不在GROUP BY从句中

因为有only_full_group_by,所以我们要在MySQL中正确的使用group by语句的话,只能是select column1 from tb1 group by column1(即只能展示group by的字段,其他像select id,name from tb1 group by name;均都要报1055的错),所以删掉ONLY_FULL_GROUP_BY

在my.cnf种添加

sql-mode="STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER"

即可

以前随用随查随忘,最后除了几个常用的,一个也没记住,以后记一下,总结总结。

  1. git init //初始化仓库
  2. git add .(文件name) //添加文件到本地仓库
  3. git commit -m "first commit" //添加文件描述信息
  4. git remote add origin + 远程仓库地址 //链接远程仓库,创建主分支
  5. git pull origin master // 同步本地与远程仓库文件
  6. git push -u origin master //把本地仓库的文件推送到远程仓库,强推后面加-f
  7. git remote set-url origin http://0.0.0.0:3000/AAA/eshop-service.git // 修改远程关联仓库地址