ecshop修改表前缀后打不开

发布时间:2020-08-26 16:57:13 来源:青锋建站 作者:青锋建站
  ecshop v4.0.8版本存在许多问题,如果没有专业的PHP开发基础,几本就不好使了,小编也使用的以前版本的,早期的版本不存在许多问题。而现在ecshop 被收购后,更像是淘宝平台的宣传工具而已,官网很少投入许多的精力去改善,也许授权版本不会出现这些问题吧。但是开源版本越做越差,连ecshop 原来这些基本的家底也要给磨灭了。以下是青锋建站给大家分享的ecshop v4.0.8版本修改表前缀后打不开的解决方法。

ecshop v4.0.8问题分析

  ecshop v4.0.8安装后出现MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => select value from ecs_shop_config where code = 'shop_logo' ) [2] => Array ( [error] => Table 'ecshop.ecs_shop_config' doesn't exist ) [3] => Array ( [errno] => 1146 ) )
  分析源代码后发现,许多代码处使用ecs_为前缀,安装时定义的表前缀仍未生效,因此需要对源码进行修改。如果使用默认的ecs_表前缀当然不会有问题,但这样就不安全,如果改就会出问题,也就是说要么就去授权,要么就别用。

ecshop v4.0.8ecshop修改表前缀后打不开解决方法

1、首次出现的地方是/includes/lib_main的1164行如下:
自定义导航栏
    $sql = "select value from  ecs_shop_config  where  code = 'shop_logo' ";
    $shop_logo = $GLOBALS['db']->getRow($sql);
需要修改为
$sql = "select value from  ".$GLOBALS['ecs']->table("shop_config")."  where  code = 'shop_logo' ";
2、/index.php 161行
$sql  = "select a.position_id,a.position_name,b.ad_link,b.ad_code from ecs_ad_position a left join ecs_ad b on a.position_id = b.position_id where a.position_name like '%pcindex图片%' and b.enabled ='1";
修改为
$sql  = "select a.position_id,a.position_name,b.ad_link,b.ad_code from ".$GLOBALS['ecs']->table("ad_position")." a left join ".$GLOBALS['ecs']->table("ad")." b on a.position_id = b.position_id where a.position_name like '%pcindex图片%' and b.enabled ='1'";
3、此外/admin/mobile_setting.php这个脚本出现也比较多,大家需要自行修改,修改的方法是将原来sql语句中的表名称进行修改,例如表名称为ecs_ad,我们要修改为".$GLOBALS['ecs']->table("ad").",其他地方只要是出现了就是修改。
  青锋建站,提供专业的高品质网站制作服务,使用的建站系统包括:ecshop建站dedecms建站phpcms建站wordpress建站opencart建站;包括网站建设,SEO,网络营销,PHP开发,网站建设知名品牌,全国接单,为企业构建强有力的营销平台。
 

分享到:

Copyright © 2016-2026 青锋建站 版权所有