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开发,网站建设知名品牌,全国接单,为企业构建强有力的营销平台。
青锋建站,提供专业的高品质网站制作服务,使用的建站系统包括:ecshop建站、dedecms建站、phpcms建站、wordpress建站、opencart建站;包括网站建设,SEO,网络营销,PHP开发,网站建设知名品牌,全国接单,为企业构建强有力的营销平台。
转载请注明来源网址:青锋建站-http://www.sjzphp.com/webdis/table_prefix_1196.html