解决方案 »

  1.   

    会吗?
    看看你的表定义和实际执行的 sql 指令
      

  2.   

    实际执行的就变成了0,数据库默认值设置的为NULL
      

  3.   

    数据库默认值设置的为NULL你在框架执行sql的时候,先截获sql,打印出来sql,看看sql中那个字段的值是不是空的。
      

  4.   

    数据库默认值设置的为NULL你在框架执行sql的时候,先截获sql,打印出来sql,看看sql中那个字段的值是不是空的。
    打印了都变成0了
      

  5.   

    1.输出$str看下
    2.数据库是否设置默认值,表字段是不是整型
      

  6.   


    for($t='AD';$t<= 'BT';$t++)

    $excelcell=$PHPExcel->getActiveSheet()->getCell("$t$j")->getValue();
        if(''==$excelcell){echo 'NULL';};
          $arr_result_nutr  .= $excelcell.',';
    }
    $strs_nutr=explode(",",$arr_result_nutr);
        //$data_food=M("Food")->where("ID=$current_id")->select();
    $data=array(
        'ID'=>$current_id,
        'RECORD_ID'=>$recordid,
        'NAME'=>$name,
    'PER_CONTENT'=>$PHPExcel->getActiveSheet()->getCell("AB$j")->getValue(),//每份含量
    'PER_UNIT'=>'g', 

    'ENERGY_KJ'=>$strs_nutr[0],
               'ENERGY_KCAL'=>$strs_nutr[1],
                'PROTEIN'=>$strs_nutr[2],
                'FAT'=>$strs_nutr[3],
                'FULL_FAT'=>$strs_nutr[4],
                'OPP_FAT'=>$strs_nutr[5],
                'SINGLE_FAT'=>$strs_nutr[6], 
                'MULT_FAT'=>$strs_nutr[7],
                'CHOLESTEROL'=>$strs_nutr[8],
                'CARBON'=>$strs_nutr[9],
                'SUGAR'=>$strs_nutr[10],
    );
    //dump($data);
    M("Nutrition")->add($data);
                                   var_dump($data);
    echo M("Nutrition")->getlastsql();
      

  7.   

    你 print_r($data) 能看到那个元素会是 null 吗?你的 if(''==$excelcell){echo 'NULL';} 是什么意思?
    应该是 if(''==$excelcell) { $excelcell =  'NULL'; } 吧
    这样才有可能在值域出现 NULL
      

  8.   


    $data       =   $this->_facade($data);
            if(false === $this->_before_insert($data,$options)) {
                return false;
            }发现是MODEL里的这段代码把值变了,怎么处理这段代码啊?