MySQL group_concat方法的长度限制
MySQL中group_concat支持的最大字符数为1024。如果超过这个长度会直接截断。
遇到这种情况有两种方式解决:
1. 弃用group_concat, 将字段的关联写在代码逻辑中
2. 修改group_concat的最大限制
查看group_concat的最大限制
show variables like "group_concat_max_len";
使用sql设置group_concat的最大长度,但是这种方式在重启mysql后就无效
SETGLOBALgroup_concat_max_len=102400;
SETSESSIONgroup_concat_max_len=102400;
在MySQL配置文件中my.conf或my.ini中添加以下配置,然后重启Mysql
group_concat_max_len=102400
由于每个表存储的数据不同,且查询场景不同,根据现有的场景确定修改的最大长度,可能不满足以后其他的业务场景,所以推荐使用第一种方式,将关联逻辑写在代码逻辑中。
PHP Filter函数
PHP 过滤器用于对非安全来源的数据(比如用户输入)进行验证和过滤。Filter函数是PHP核心的组成部分。无需安装即可使用。
1. filter_has_var 检查是否存在指定输入类型的变量
如果成功返回true, 如果失败返回false
语法:filter_has_var(type, variable)
type: 必须。规定要检查的类型:INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV
variable: 必须。规定要检查的变量。
2. filter_id 返回指定过滤器的ID号
如果成功则返回过滤器的 ID 号,如果过滤器不存在则返回 NULL。
语法:filter_id(filter_name)
filter_name: 必需。规定被获取 ID 号的过滤器。
3. filter_input 从外部脚本获取输入(比如表单输入),并进行过滤。
该函数用于对来自非安全来源的变量进行验证,比如用户的输入。
该函数可从各种来源获取输入:INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_ENV, INPUT_SERVER
如果成功,返回被过滤的数据,如果失败,则返回false。如果variable参数未设置,则返回NULL.
语法:filter_input(input_type, variable, filter, options)
4. filter_list 返回包含所有得到支持的过滤器的一个数组
5. filter_var_array 获取多个变量进行过滤
该函数对过滤多个值很有用,无需重复使用filter_var。如果成功,则以数组的形式返回请求变量的值,如果失败,则返回false.
语法:filter_var_array(array, args)
6. filter_var 获取一个变量进行过滤
如果成功,则返回被过滤的数据,如果失败,则返回false
语法:filter_var(variable, filter, option)
如:filter_var("someone@example....com", FILTER_VALIDATE_EMAIL)
7. filter_input_array 从脚本外部获取多项输入,并进行过滤
网友评论