BinZhiZhu's Blog

Hello,World.


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

mysql-Expression #1 of SELECT list is not in GROUP BY clause解决方案

发表于 2018-11-30 | 分类于 后端 | | 阅读次数:
字数统计: 294 | 阅读时长 ≈ 1

##前言
最近部署自己项目到服务器后,运行时mysql报错,抛出异常的代码为:

1
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'support_desk.mod_users_groups.group_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

谷歌翻译一下大概意思:

SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列’support_desk.mod_users_groups.group_id’,它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by不兼容

解决方案

实锤是因为MySQL版本的原因,我去StackOverflow查了相关的解决方案,最终还是解决了这个问题。

  • cd /etc/my.cnf 或者etc/mysql/my.cnf 不清楚路径可以 whereis my.cnf 打印pwd路径
  • vim my.cnf
  • 添加sql_mode

    1
    2
    [mysqld]
    sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  • esc :wq 报错退出

  • 重启一下mysql服务 sudo service mysql restart / 或者/etc/init.d/mysql restart等等都可以

  • 除了上面这种方法也可以直接连接mysql 通过mysql->set …[sql_mode] 类似

    这样问题就解决了,最后贴一下解决方案的地址

    [stackoverflow]:https://stackoverflow.com/questions/34115174/error-related-to-only-full-group-by-when-executing-a-query-in-mysql

探讨Tencent/weui.js之picker组件库

发表于 2018-11-30 | 分类于 前端 | | 阅读次数:
字数统计: 883 | 阅读时长 ≈ 4

Functions


picker(items, options)

picker 多列选择器。



datePicker(options)

datePicker 时间选择器,由picker拓展而来,提供年、月、日的选择。



picker(items, options)

picker 多列选择器。

Kind: global function

Param Type Default Description
items array picker的数据,即用于生成picker的数据,picker的层级可以自己定义,但建议最多三层。数据格式参考example。
options Object 配置项
[options.depth] number picker深度(也就是picker有多少列) 取值为1-3。如果为空,则取items第一项的深度。
[options.id] string "default" 作为picker的唯一标识,作用是以id缓存当时的选择。(当你想每次传入的defaultValue都是不一样时,可以使用不同的id区分)
[options.className] string 自定义类名
[options.container] string 指定容器
[options.defaultValue] array 默认选项的value数组
[options.onChange] function 在picker选中的值发生变化的时候回调
[options.onConfirm] function 在点击”确定”之后的回调。回调返回选中的结果(Array),数组长度依赖于picker的层级。
[options.onClose] function picker关闭后的回调
阅读全文 »

探讨Tencent/weui.js

发表于 2018-11-30 | 分类于 前端 | | 阅读次数:
字数统计: 205 | 阅读时长 ≈ 1

##认识WeUI

WeUI 的轻量级 js 封装。
注意:由于微信小程序不支持dom操作,所以weui.js并不适用于小程序。不过WeUI也为小程序开发了另外的版本,详情请看:https://github.com/Tencent/weui-wxss/
手机预览:https://weui.io/weui.js/

##安装

1
2
3
4
git clone https://github.com/Tencent/weui.js.git
cd weui.js
npm install
npm start

##编译

1
npm run build

##使用

global

1
2
3
4
5
6

<link rel="stylesheet" href="https://res.wx.qq.com/open/libs/weui/1.1.3/weui.min.css">
<script type="text/javascript" src="https://res.wx.qq.com/open/libs/weuijs/1.1.4/weui.min.js"></script>
<script type="text/javascript">
weui.alert('alert');
</script>

import as module

1
2
3
4
import 'weui';
import weui from 'weui.js';

weui.alert('alert');

##文档

[文档]:https://github.com/Tencent/weui.js/blob/master/docs/README.md

##Github

[github]:https://github.com/Tencent/weui.js

fsockopen实现发起异步请求忽略返回值

发表于 2018-11-29 | 分类于 后端 | | 阅读次数:
字数统计: 430 | 阅读时长 ≈ 1

##前言

前段时间有个需求,我大概描述一下:用户进入公众号或者小程序的所有操作类行为的日志需要后端上报到内部的客户雷达小程序,而且需要异步请求,不需要等待返回。
简单来说就是当用户进入小程序点击某件商品或者加入购物车、下单等等操作,上报到雷达小程序,商户会时序看到哪个用户进来我的商店买了哪件商品,浏览了哪些商品,下了多少单等等,都可以随时看到。
这个时候我们就可能要需要思考了,要如何做到发起异步请求并且忽略返回值,前端那边不需要等待后端的返回,我也查看过相关资料,最后参考了下面这种方法。

发起异步请求 忽略返回值(后端技术PHP)

自己封装一个方法吧 我直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* 发起异步请求,忽略返回值
* @param $url 上报地址 例如http://www.binzhizhu.top
* @param array $params 上报的参数
* @return bool
*/
public static function asyncPost($url, $params = [])
{
Yii::info("into asyncPost ", __METHOD__);

$args = parse_url($url);
$host = $args['host']; //域名
$path = $args['path'] . '?' . http_build_query($params);//上报的参数

$fp = fsockopen($host, 80, $error_code, $error_msg, 1);//使用fsockopen方法发起异步请求

if (!$fp) {
Yii::error($error_code . ' _ ' . $error_msg, __METHOD__);
return false;
} else {
stream_set_blocking($fp, true);//开启了手册上说的非阻塞模式
stream_set_timeout($fp, 1);//设置超时
$header = "GET $path HTTP/1.1\r\n"; // GET/POST请求 http1.1协议
$header .= "Host: $host\r\n";
$header .= "Connection: close\r\n\r\n";//长连接关闭
fwrite($fp, $header);
fclose($fp);
}
}

Axios--基于 promise 的 HTTP 库

发表于 2018-11-28 | 分类于 前端 | | 阅读次数:
字数统计: 2.5k | 阅读时长 ≈ 10

##认识Axios
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。

Features

  • 从浏览器中创建 XMLHttpRequests
  • 从 node.js 创建 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求数据和响应数据
  • 取消请求
  • 自动转换 JSON 数据
  • 客户端支持防御 XSRF

    安装

    使用 npm:

    1
    $ npm install axios

    使用 bower:

    1
    $ bower install axios

    使用cdn:

    1
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
阅读全文 »
1…5678
BinZhi Zhu

BinZhi Zhu

纵使你脚下有一千名挑战者,那就把我算作第一千零一名。

36 日志
4 分类
28 标签
RSS
0%
© 2020 BinZhi Zhu
Copyright © 2018
|
Powered by Hexo | Theme by Next
载入天数...载入时分秒...