倘若我们把ecshop商品列表的数据改到特别大的时候,奇迹就来了,你会发现这个商品无论如何在前台也无法显示出来。 首先后台执行一个SQL 语句 UPDATE ecs_goods SET goods_id = 320212323146545 WHERE goods_id =32; 会发现你修改之后列表显示的最大数也就是 16777215 这个了,假若你要更变态咋整呢。 编辑表结构。goods_id ALTER TABLE CHANGE goods_id goods_id BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ; 此时,你再去设置这个数你会发现。商品列表的序列ID就是你设置的。但是此时你再想预览这个商品那是不可能的。不信你试试,当你尝试过后,怎么发现 直接转到首页了,啥原因所致,这个应该是取值不到,自动返回一个默认值,所以在数据库查不到,自然就回到首页了。ECSHOP 就这样的。 那么我们执意要用这么变态的ID 那应该怎么做呢?
//www.ldhost.cn 打开 站点 根目录下的 goods.php 文件 找到这段 $goods_id = isset($_REQUEST[‘id’]) ? intval($_REQUEST[‘id’]) : 0; 修改成如下: $goods_id = isset($_REQUEST[‘id’]) ? trim(($_REQUEST[‘id’])) : 0; 然后清除一下缓存,再次打开看看,是不是可以打开了。 mysql bigint取值范围:与操作系统无关,为-9223372036854775808到9223372036854775807,无符号为0到18446744073709551615。 当你再一次大于这个18446744073709551615时候,我估计又会有新的解决办法。介于此问题大概就这样。
