PHP菜鸟博客_共同学习分享PHP技术心得【PHP爱好者】
thinkphp3.2.3中addAll,如果数据有NULL则插入失败
2021-11-25 菜鸟站长


问题发现过程是取出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

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容