关于修复ECSHOP商品购买记录的一个BUG

2016-09-11 20:39 来源:www.chinab4c.com 作者:ecshop专家

在ECSHOP程序商品购买记录里面的。查询sql语句中:

代码是:

AND ' . time() . ' - oi.add_time < 2592000


这里用的是time(),而add_time生成的时候是gmtime(),时间不一致。


如果用户设置时区是西区,time()比gmtime()小,就可能产生负数,造成溢出错误( `add_time` int(10) unsigned NNULLFAULT '0',)。

应该改为: AND oi.add_time > '.gmtime().' - 2592000
让ECSHOP时间要保持一致。


另外,把判断字段单独放前面,计算放后面,这是写sql的基本原则。如果add_time有索引的话,这样写还能用上索引。