Gzc。。。 2021-11-30 09:45 采纳率: 93.8%
浏览 55
已结题

下面函数能查出thinkphp哪里的错误吗


    public function refreshbatch(){
        $ids = '17882,17880';
        !preg_match('#^[\d,]+$#', $ids) && $this->error('参数错误!');
        $site_model = M('Site');
        $site_refresh_model = D('SiteRefresh');
        if($ids){
            $ids = explode(',', $ids);
            if(count($ids) > 0){
                $success = 0;
                foreach ($ids as $k=>$v){
                    $map = array(
                        'id'        =>    $v,
                    );
                    $site = $site_model->where($map)->find();
print_r($site);
                    $site_id = $site['id'];
                    if($site_id && !$site_refresh_model->where(array('site_id'=>$site_id,'state'=>0))->count()){
                        $site_refresh_model->build($site_id, $site['site_domain']) && $success++;
                    }
                }
                if($success > 0){
                    $this->success('刷新成功,待系统更新!');
                }
            }
        }
        $this->error('刷新失败,也许网站正待刷新状态!');
    }

print_r($site)的数组结果$site_id 值也正常;Array ( [id] => 17882 [member_id] => 212 [cate_id] => 12 [site_name] => yy网 [site_domain] => http://www.123.com [site_lang] => 1 [price] => 60.00 [price_member] => 60.00 [show_type] => 1 [allow] => 1 [state] => 1 [sort] => 255 [remark] => [is_rec] => 0 [is_best] => 0 [is_promote] => 0 [http_code] => 0 [auto_link] => 0 [refresh_time] => 1638173761 [update_time] => 0 [add_time] => 1638173749 ) Array ( [id] => 17880 [member_id] => 212 [cate_id] => 11 [site_name] => xx网 [site_domain] => http://www.abc.com [site_lang] => 1 [price] => 200.00 [price_member] => 200.00 [show_type] => 1 [allow] => 1 [state] => 1 [sort] => 255 [remark] => [is_rec] => 0 [is_best] => 0 [is_promote] => 0 [http_code] => 0 [auto_link] => 0 [refresh_time] => 1638172406 [update_time] => 1637902351 [add_time] => 1637902312 )

build函数

class SiteRefreshModel extends RelationModel{
    
    /**
     * 创建更新数据
     * @author manzige@foxmail.com
     * @param integer $site_id
     * @param string $site_domain
     */
    public function build($site_id, $site_domain=null){
        static $count = 0;
        if(empty($site_domain)){
            $site_domain = M('Site')->where(array('id'=>$site_id))->getField('site_domain');
        }
        $time = time()+$count*10;
        for($i=0; $i<=2; $i++){
            $datas[] = array(
                'site_id'        =>    $site_id,
                'site_domain'    =>    $site_domain,
                'state'            =>    0,
                'type'            =>    $i,
                'update_time'    =>    $time+$i,
                'add_time'        =>    $time+$i
            );
        }
        $res = $this->addAll($datas);
        $res && $count++;
        
        return $res;
    }
}

一直都'刷新失败,也许网站正待刷新状态!',哪位大大能指教下能根据这两个函数查哪里出错导致的吗?1

  • 写回答

1条回答 默认 最新

  • 明日晴空 2021-12-01 09:08
    关注
    
     if($success > 0){
                        $this->success('刷新成功,待系统更新!');
                    }
    

    1、这个条件不执行,肯定$success > 0 条件不成立;
    2、然后往上推$success更改的地方

    if($site_id && !$site_refresh_model->where(array('site_id'=>$site_id,'state'=>0))->count()){
                            $site_refresh_model->build($site_id, $site['site_domain']) && $success++;
                        }
    
    
    

    如果$site_id有值,就打印一下后面执行的结果是否有值,或者在条件内部打印内容,看是否执行就能知道问题了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月2日
  • 已采纳回答 12月2日
  • 修改了问题 12月1日
  • 修改了问题 12月1日
  • 展开全部

悬赏问题

  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区