mysql 分页优化

SELECT SQL_CALC_FOUND_ROWS * FROM `table` WHERE ......  limit M, N;
SELECT FOUND_ROWS();
发表在 mysql | 留下评论

Yii2 添加请求日志

#SQL
CREATE TABLE `log` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `action` varchar(50) NOT NULL DEFAULT '' COMMENT 'action',
  `url` varchar(500) DEFAULT NULL COMMENT 'url',
  `params` text COMMENT 'POST参数',
  `usetime` float(11,8) DEFAULT NULL COMMENT '耗时秒,action处理错误,此值为0',
  `return` text COMMENT '返回值,action处理错误,此值为空',
  `create_time` int(11) DEFAULT NULL COMMENT '添加时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='访问日志';
public function beforeAction($action) {
        $data = [
            'params' => json_encode($this->params, 1),
            'url' => Yii::$app->request->url,
            'action' => $action->id,
            'create_time' => time(),
        ];
        
        $this->usetime = microtime(1);
        
        Yii::$app->db->createCommand()->insert('log', $data)->execute();
        $id = Yii::$app->db->getLastInsertID();
        $this->logid = $id;
        
        return parent::beforeAction($action);
    }
    
    public function afterAction($action, $result) {
        if($this->logid){
            $data = [
                'usetime' => round(microtime(1) - $this->usetime, 3),
                'return' => json_encode($result, 1)
            ];
            
            Yii::$app->db->createCommand()->update('log', $data, ['id'=>$this->logid])->execute();
        }
        return parent::afterAction($action, $result);
    }

发表在 yii2, 框架 | 留下评论

yii2 获取当前页面url

//如果又端口号,支持端口号
Yii::$app->request->getHostInfo().Yii::$app->request->url;
发表在 php, yii2 | 留下评论

php json_encode 中文不转unicode码

json_encode($msg, JSON_UNESCAPED_UNICODE)
发表在 未分类 | 留下评论

js 奇怪的问题之0

//输出 true
console.log(0 == "0")
//输出1
if(0){
   console.log(0) 
}else{
   console.log(1)
}
//输出0
if("0"){
   console.log(0) 
}else{
   console.log(1)
}
发表在 js | 留下评论

ssl 免密登陆

假如有2台机器a、b,使a机器免密登陆b机器。
1. 在a机器中输入 ssh-keygen -t rsa,一路回车
2. 复制 ~/.ssh/id_rsa.pub 中的内容
3. 在b机器中:
1):vim /etc/ssh/sshd_config
2):去掉下面的注释
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile %h/.ssh/authorized_keys # 公钥文件路径(和上面生成的文件相同)
3):将步骤2中的内容复制到 ~/.ssh/authorized_keys 中(类似 cat xxxx >> bbbb 的操作,非覆盖)
4):service sshd restart
4. 直接在a机器中 ssh [username]@b username 如果一样的话,可以不必输入

发表在 Shell | 标签为 | 留下评论

php 中文字符集修改成UTF8编码

$t = mb_detect_encoding($a,["GB18030", "UTF-8","GB2312","GBK","BIG5"]);
if($t !== false && $t != "UTF-8"){
    $a = mb_convert_encoding($a, 'UTF-8', $t);
}
发表在 php, php 优化, 基础 | 标签为 , , , , | 留下评论

mysql生成数据字典

建立数据库时一定要写好表和字段的备注

#表名
select table_name, table_comment from `tables` where table_schema='dbname' and table_name like 'tables';
#列名
select table_name, column_name, column_comment from information_schema.columns where table_schema='dbname' and table_name like 'tables';
发表在 mysql | 留下评论

Android adb 调试程序没有权限解决方案

1. 用adb 连接到手机 adb shell
2. 执行命令:run-as com.ivhong.testproject,就会直接切换到你的程序目录下,并有了这个app的权限

发表在 Android | 标签为 , , , | 留下评论

Mac下Android Studio 的 Android SDK默认安装路径

/Users//Library/Android/sdk

发表在 Android | 标签为 , , | 留下评论