解决EmpireBak帝国备份王php7版本以上报错的问题

帝国备份软件很适合大数据库,搬迁空间使用。作者很久没有更新了,导致用了php7以上版本会报错

方法1:

以下报错,直接关闭错误提示即可。php >=7.3

修改php配置文件php.ini,把display_errors设置为off就可以解决,或者宝塔面板找到安装的php版本,【配置修改】里面关闭也可以。

图片[1] | 解决EmpireBak帝国备份王php7版本以上报错的问题 | 讯沃blog

方法2:

php7.4的版本需要修改代码。

错误内容如下:

Warning: Use of undefined constant Rows – assumed ‘Rows’ (this will throw an Error in a future version of PHP) in /www/wwwroot/www.77nn.net/empirebak/lang/gb/temp/eChangeTable.php on line 275

Warning: Use of undefined constant Data_length – assumed ‘Data_length’ (this will throw an Error in a future version of PHP) in /www/wwwroot/www.77nn.net/empirebak/lang/gb/temp/eChangeTable.php on line 277

Warning: Use of undefined constant Data_length – assumed ‘Data_length’ (this will throw an Error in a future version of PHP) in /www/wwwroot/www.77nn.net/empirebak/lang/gb/temp/eChangeTable.php on line 278

……

图片[2] | 解决EmpireBak帝国备份王php7版本以上报错的问题 | 讯沃blog

大概意思就是,变量***写法不规范,php会在未来的版本中弃用这种写法。

页面会提示出对应的文件以及警告的行。只需要在变量$r[***]中间添加引号''

修改示例:

文件位置:\lang\语言编码\temp\eChangeTable.php

修改前:$r[Field]

修改后$r['Field'],变量全部都要添加引号,也就是[]变量中间全部都要改。

图片[3] | 解决EmpireBak帝国备份王php7版本以上报错的问题 | 讯沃blog

上面截图是部分截图。修改完成保存替换源文件即可。

数据库保存警告:

Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/www.77nn.net/empirebak/class/combakfun.php on line 105

找到对应的文件位置,class/combakfun.php文件的105

$count=count($mdbver);

改为

$count=count((array)$mdbver);

备份警告:

Warning: count(): Parameter must be an array or an object that implements Countable in /www/wwwroot/www.77nn.net/backup/class/functions.php on line 462

class/functions.php文件

把462行的$count=count($tablename);

改为

$count=count((array)$tablename);

文件下载

另,附上修改完成的几个文件,文件夹替换掉原来的目录即可。我用的是默认GB2312和UTF-8编码,所以只修改了gb和gbutf-8语言目录下的文件。

默认账号admin,默认密码123456

© 版权声明
THE END
喜欢就支持一下吧
点赞17赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容