项目场景:
今天进行模块功能测试的时候发现:我点击修改员工的数据,员工的某些属性数据修改成功,某些属性数据修改失败(最终发现修改失败的数据全是下拉框所在的地方)。
原因分析:
始终没有找到原因,因为我想修改的值已经传入后端了,按理来说应该可以进行修改的,无奈找来了我的同事帮忙。
最终发现是我的动态SQL出了问题:
以性别为例:
<%--前端界面--性别--%>
<div class="layui-form-item">
<label class="layui-form-label">性别</label>
<div class="layui-input-inline">
<select name="sex" lay-verify="required">
<option value="0">男</option>
<option value="1">女</option>
</select>
</div>
</div>
而我的sql是这样写的:
按理来说这样的SQL写法是对的,但是因为sex属性在数据库里是int类型的,所以这里就出了问题
因为前端传进来的是“0”,当有!= ’ '的这个条件时参数0会被认为是false,所以更新不了该条属性数据。
解决方案:
一、是删除掉整个if语句,保留原始的风格(可前端校验是否为空)
二、删除删除! = ’ ’ 这部分
三、将! = ’ '这部分修改成! = ’ -1 ’
解决该问题过后我去搜索了一下产生问题的原因,从这篇博主的博文中得到了答案,特此感谢。
博文:点击此处跳转
此外,数据库属性为date类型的好像也不能加这个,我记得当时我报错了(具体是什么忘记了,当时的解决办法是直接删除的这部分)
新手小白,刚上路,有许多知识不清楚,还望大家多多指点一下我,谢谢啦
版权声明:本文为weixin_44415787原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。