云服务器 99 / 年,新老同享(可以99/年续费),开发者力荐特惠渠道,新客户在享受9折
阿里云推广

thinkphp3.2.3中addAll,如果数据有NULL则插入失败

  • 内容
  • 评论
  • 相关

问题发现过程是取出goods表里面的内容插入到goods_bak里面,两个表字段完全一样,结果发现报错提示:字段的个数不匹配
Insert value list does not match column list: 1136 Column count doesn't match value count at row 1
下面是sql代码:

$goods_arr=M('goods')->where(" basekeynum='$basekeynum' ")->select();
M('goods_bak')->addAll($goods_arr);

addAll批量插入数据,如果数据有空的,则会插入失败,错误是在 ThinkPHP/Library/Think/Db/Driver/Mysql.class.php第123行

is_scalar不会判断null给一个标量,会直接过滤掉,
建议:
改成is_scalar($val)  ||   is_null($val)
加入空值判断

修改示例:

6666.jpg

本文标签:

版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。

本文链接:thinkphp3.2.3中addAll,如果数据有NULL则插入失败 - https://wlphp.com/?post=297

发表评论

电子邮件地址不会被公开。 必填项已用*标注