老莫的笔记本  
  
查看: 1097|回复: 0

分类书更新维护- 字段值过长 2020-01-19

[复制链接]

664

主题

881

帖子

5167

积分

超级版主

Rank: 8Rank: 8

积分
5167
发表于 2020-1-19 15:43:19 | 显示全部楼层 |阅读模式
报错类型: message: "SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'mtype' at row 2562  
报错表象: 本地不报错,本地为phpstudy 集成 ; 服务器报错, 服务器为ningx 、linux ;
表象原因: 商标字段 有一个 mtype 这个字段 商标局很搞笑的 来了个 1705、1706  
处理方法:
  1.      // 分批次批量导入
  2.              foreach ($t as $v) {

  3.                 // 因为商标局比较坑,部分mtype 的 值 一栏是两个, 所以需要重新处理
  4.                 foreach($v as $key => $vvv)
  5.                 {
  6.                      // 如果出现这种情况,依 、 拆分 为数组 ,在制造多个相同的数组  还回去
  7.                     if( strlen( $vvv['mtype']) > 10)
  8.                     {
  9.                         // 从原数组中删除、否则会出现 报错 或者 三个 之类
  10.                         unset($v[$key]);

  11.                         // 将这个字符串分割为数组  [这个符号是中文的顿号 ]
  12.                         $tmdsbj = explode("、",$vvv['mtype']);

  13.                         // 循环创建新玩意
  14.                         foreach( $tmdsbj as $tmdsbv )
  15.                         {
  16.                             $mppp = array(
  17.                                 'ctype' => $vvv['ctype'],
  18.                                 'mtype' => $tmdsbv,
  19.                                 'xtype' => $vvv['xtype'],
  20.                                 'spfw' => $vvv['spfw'],
  21.                                 'datatype' => $vvv['datatype'],
  22.                                 'wu' =>  $vvv['wu']
  23.                             );
  24.                             // 添加进去
  25.                             $v[] = $mppp;
  26.                         }

  27.                     }

  28.                 }

  29.                 DB::table($xlistName)->insert($v);

  30.             }


  31.               $timeUsage = now()->diffInSeconds($start);       //判断所用时间
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表