问题描述:
本地安装ECshop测试没问题,当将网站上传到美国空间后,在网站上购买产品测试,可以正常提交订单,但是当提交订单后,再返回打开刚刚下订单的那个产品页面却出现下面的错误信息
MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => SELECT u.user_name, og.goods_number, oi.add_time, IF(oi.order_status IN (2, 3, 4), 0, 1) AS order_status FROM `cpuser_ecs`.`ecs_order_info` AS oi LEFT JOIN `cpuser_ecs`.`ecs_users` AS u ON oi.user_id = u.user_id, `cpuser_ecs`.`ecs_order_goods` AS og WHERE oi.order_id = og.order_id AND 1359729023 - oi.add_time < 2592000 AND og.goods_id = 499 ORDER BY oi.add_time DESC LIMIT 5 ) [2] => Array ( [error] => BIGINT UNSIGNED value is out of range in '(1359729023 - `cpuser_ecs`.`oi`.`add_time`)' ) [3] => Array ( [errno] => 1690 ) )
出现这个问题是由于溢出得到一个负数,查了好久,原来是时间戳大了,就是时区设置错误了,因为用的是美国服务器,服务器上的时间是美国的,所有需要设置正确的时区,有两个地方需要设置,第一个是在ECshop网站后台,设置,基本设置那里设置时区,选GMT + 8这个时区,然后是在ECshop网站根目录里面的/data/config.php那个文件里面设置时区,调整时区为上海时区就行了,如- $timezone = "Asia/Shanghai";
复制代码 这样做了之后问题就应该可以得到解决了。 |