应用插件 版主:官方插件技术组
图书阅读系统火车头采集入库导致整体报错
类型:迅睿CMS 更新时间:2025-05-31 10:01:19 开发者模式 图书阅读系统
插件 图书阅读系统 V2.8
应用作者 迅睿官方团队
发布时间 2019-02-13 13:05:10
更新时间 2024-12-19 10:31:13

cf9bd011d9cf9297c469022103763da

昨天用火车头开了4个线程上传内容,突然报错,上传部分成功部分失败,失败之后就一直报错(用的官方图书导入接口);

报错开开发者模式,,显示

微信图片_20250529215714.png

火车头报错

ID:5238
网址:https://www.bible.com/ja/bible/3345/LEV.25.LSB
Header:
源代码:
========分隔线=======
ID:10170
网址:https://www.bible.com/ja/bible/117/GEN.38.NLV
Header:HTTP/1.1 404 Not Found
Date:Tue, 27 May 2025 14:26:09 GMT
Content-Type:text/html
Transfer-Encoding:chunked
Connection:keep-alive
Server:cloudflare
Nel:{"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Cf-Cache-Status:DYNAMIC
Report-To:{"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=axCPPuZwwuqs2KYdGFQyEDlFoz%2FS41IQlU8LjLkCt9FbRthw6GXq7VGCpQUNVoY2V2nd5ZA5WB2vzthHFdGMuG4TRQtbVgmNpsIj%2BlzySgz3"}]}
Content-Encoding:gzip
CF-RAY:94662f88ae488d22-KIX
alt-svc:h3=":443"; ma=86400
Content-Length:548

源代码:<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx</center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->

========分隔线=======
ID:10170
网址:https://www.bible.com/ja/bible/117/GEN.38.NLV
Header:
源代码:
========分隔线=======


自己推的逻辑(纯小白),好像内容到一定程度后,触发了要建新的内容存储表,,1,,但这个1不单没创建成功,还把老内容指向0的,也强制改成了1(过程中,我没改过数据库),导致页面在匹配内容时,查询1,因为没创建成功,直接报错,,


这是我的偶发特例,还是代码上的问题!

插件教程:https://www.xunruicms.com/doc/app-342.html

回帖
  • 迅睿官方技术专家
    #1楼    迅睿官方技术专家
    2025-05-29 22:12:05
    Chrome 0
    表不存在,复制表0的结构去1试一试
  • 大於
    #2楼    大於
    2025-05-29 22:15:07
    Chrome 0
    迅睿官方技术专家
    77bf0b1f12432e1ff96cc1329c83814
    是的,我做了这个尝试,内容页可以打开了,但不知道为什么,,手动改成0之后,,过段时间,又被恢复成1了,,,
  • 迅睿官方技术专家
    #3楼    迅睿官方技术专家
    2025-05-30 12:36:25
    Chrome 0
    form_son的id号超过10万进1号附表了
  • 大於
    #4楼    大於
    2025-05-31 08:21:34
    Chrome 0
    迅睿官方技术专家 现在貌似不会自动创建附表1,,要怎么调整!
  • 迅睿官方技术专家
    #5楼    迅睿官方技术专家
    2025-05-31 09:16:30
    Chrome 0
    手动创建一下吧
    \Phpcmf\Service::M('mform', 'mform')->save_content这个方法可以自动创建
  • 大於
    #6楼    大於
    2025-05-31 10:01:19
    Chrome 0
    迅睿官方技术专家
    <?php
    
    $tid = 'son';
    $mid = 'book';
    $this->_module_init($mid); // news 是模块目录
    
    $form = $this->module['form'][$tid];
    if (!$form) {
        exit('模块表单【'.$tid.'】不存在');
    }
    // 入库数据
    
    $data = $_REQUEST;
    
    if (!$data['cid']) {
        exit('主内容cid参数不能为空');
    }
    
    $index = $this->content_model->get_row($data['cid']);
    if (!$data['cid']) {
        exit('主内容cid参数不能为空');
    }
    
    // 发布者id 1
    $data['uid'] = 1;
    // 发布者笔名 admin
    $data['author'] = 'admin';
    
    // 主表字段
    $main = $this->content_model->dbprefix(SITE_ID . '_' . MOD_DIR.'_form_'.$tid);
    $fields[1] = $this->get_cache('table-' . SITE_ID, $main);
    
    // 附表字段
    $fields[0] = $this->get_cache('table-' . SITE_ID, $main. '_data_0');   
    
    
    // 开始归类存储
    
    $save = [];
    
    // 主表附表归类
    foreach ($fields as $ismain => $field) {
        foreach ($field as $name) {
            isset($data[$name]) && $save[$ismain][$name] = $data[$name];
        }
    }
    
    $save[1]['uid'] = $save[0]['uid'] = $data['uid'];
    $save[1]['cid'] = $save[0]['cid'] = $data['cid'];
    $save[0]['neirong'] = $data['neirong'];
    $save[1]['status'] = 1; // 审核通过
    $save[1]['inputtime'] = SYS_TIME; // 发布时间设置成为当前时间
    $save[1]['inputip'] = '127.0.0.1'; // 发布者ip地址
    
    
    $rt = \Phpcmf\Service::M('mform', 'mform')->save_content($mid, $tid, $index, $save[1], $save[0]);
    echo \Phpcmf\Service::M()->get_sql_query();
    
    if ($rt['code']) {
    
        exit('成功');
    } else {
        exit('失败');
    }
    
    exit;
    火车头导入接口这
    // 附表字段
    $fields[0] = $this->get_cache('table-' . SITE_ID, $main. '_data_0');
    是不是也得手动改成_data_1?