倘若我們把ecshop商品列表的數(shù)據(jù)改到特別大的時候,奇跡就來了,你會發(fā)現(xiàn)這個商品無論如何在前臺也無法顯示出來。
首先后臺執(zhí)行一個SQL 語句
UPDATE ecs_goods SET goods_id = 320212323146545 WHERE goods_id =32;
會發(fā)現(xiàn)你修改之后列表顯示的最大數(shù)也就是 16777215 這個了,假若你要更變態(tài)咋整呢。
編輯表結(jié)構(gòu)。goods_id
ALTER TABLE CHANGE goods_id goods_id BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ;
此時,你再去設置這個數(shù)你會發(fā)現(xiàn)。商品列表的序列ID就是你設置的。但是此時你再想預覽這個商品那是不可能的。不信你試試,當你嘗試過后,怎么發(fā)現(xiàn) 直接轉(zhuǎn)到首頁了,啥原因所致,這個應該是取值不到,自動返回一個默認值,所以在數(shù)據(jù)庫查不到,自然就回到首頁了。ECSHOP 就這樣的。
那么我們執(zhí)意要用這么變態(tài)的ID 那應該怎么做呢?//www.zuimoban.com
打開 站點 根目錄下的 goods.php 文件
找到這段
$goods_id = isset($_REQUEST[‘id’]) ? intval($_REQUEST[‘id’]) : 0;
修改成如下:
$goods_id = isset($_REQUEST['id']) ? trim(($_REQUEST['id'])) : 0;
然后清除一下緩存,再次打開看看,是不是可以打開了。
mysql bigint取值范圍:與操作系統(tǒng)無關,為-9223372036854775808到9223372036854775807,無符號為0到18446744073709551615。
當你再一次大于這個18446744073709551615時候,我估計又會有新的解決辦法。介于此問題大概就這樣。
新聞熱點
疑難解答
圖片精選