因帝国CMS8.0迟迟没有发布正式版,而部分站长又急切升级到8.0.那小编讲解7.5升级8.0的另一非官方方法。教程如下:
- // 准备要插入的数据
- $r = $empire->fetch1("SELECT MAX(id) as maxid FROM {$dbtbpre}ecms_submissions");
- $newid = intval($r['maxid']) + 1;
- debug_log('生成的新ID', $newid);
- //$filename = $newid . '.html';
- $titleurl = '/record/' . $newid . '.html';
- $recordUrl = $public_r['newsurl']."record/".$newid.".html"; // 生成记录URL,用于发送给response,连接到记录表内容页
- // 插入主表数据
- $sql = $empire->query("INSERT INTO {$dbtbpre}ecms_submissions(id,news_id,classid,filename,titleurl,newstime,title,user_input,prompt,model_used) VALUES(
- '$newid',
- '$id',
- '2',
- '$newid',
- '$titleurl',
- '" . time() . "',
- '" . addslashes($title) . "',
- '" . addslashes(json_encode(array_map('strval', (array)$user_input), JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_IGNORE)) . "',
- '" . addslashes($prompt) . "',
- '" . addslashes($custom_settings['api']['deepseek']['model']) . "'
- );");
- if (!$sql) {
- debug_log('主表数据保存失败', $empire->error());
- throw new Exception('保存记录失败');
- }
- // 插入副表数据
- $sql = $empire->query("INSERT INTO {$dbtbpre}ecms_submissions_data_1(id,classid,api_response) VALUES(
- '$newid',
- '2',
- '" . addslashes($formatted_response) . "'
- );");
- if (!$sql) {
- debug_log('副表数据保存失败', $empire->error());
- // 删除主表数据
- $empire->query("DELETE FROM {$dbtbpre}ecms_submissions WHERE id='$newid'");
- throw new Exception('保存响应数据失败');
- }
- // 插入索引表数据
- $sql = "INSERT INTO {$dbtbpre}ecms_submissions_index(id,classid,checked) VALUES(
- '" . addslashes($newid) . "',
- '2',
- '1'
- );";
- debug_log('插入索引表SQL', $sql); // 打印SQL语句
- if (!$empire->query($sql)) {
- debug_log('索引表数据保存失败', $empire->error());
- // 删除主表和副表数据
- $empire->query("DELETE FROM {$dbtbpre}ecms_submissions WHERE id='$newid'");
- $empire->query("DELETE FROM {$dbtbpre}ecms_submissions_data_1 WHERE id='$newid'");
- throw new Exception('保存索引数据失败');
- }
- // 更新栏目信息
- $empire->query("UPDATE {$dbtbpre}enewsclass SET allinfos=allinfos+1,infos=infos+1 WHERE classid='2'");
- debug_log('数据保存成功', ['id' => $newid]);
前提程序没做过二次开发的,
直接安装新的8.0后,把老的数据库,栏目和模板备份后导入就可以。
栏目表包含class,模板是temp,直接导出这几个表导入新的就可以。
还有新闻列表按出错提示手动加几个字段就可以了