mysql sql 语句过大,如何设置。post 表单传输数据过大,数据被截去问题。

今天在处理微擎添加商品的时候,添加过多的商品导致,商品的数据丢失,研究的一天,发现微擎中的PDO_UPDATE 方法中会把这种大的sql 弄丢失掉。

经过度娘和研究中解决

解决方案:

1,修改代码,把pdo_update 的方法替换为pdo_query .,$sql 在方法中拼接好,不使用pdo_update 里的组装方法。

2,修改mysql 的配置文件,my.cnf  

max_allowed_packet = 30M
net_buffer_length =10M
重启mysql 服务

service mysqld restart

ok 

在此添加商品,ok 保存成功,数据没有丢失。

----------------------------------2019-10-23 ------更新-----------------------------------------------

上面的是在我本地是没有问题的,但是到服务器上又不不行了,各种查完后发现需要修改 php.ini 文件

php.ini
 max_input_vars = 4000

google一下,原来PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量,折腾了半天,原来php小版本升级引起的不兼容,php中默认post中的参数的个数是1000, 超过部分会被自动扔掉。用 phpinfo()查看max_input_vars。如下图所示:

解决方法很简单,在PHP.ini中设置 max_input_vars = 5000

php.ini 文件里的  max_input_vars 默认值为 1000, 正常情况下够用,偶尔遇到我这种提交2000多个表单的情况还是比较少见的,不过,如果发现提交表单个数不全的情况,可以试试修改这个配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值