如何避免将空值插入数据库?

时间:2019-05-13 09:37:25

标签: html mysql jsp

这个问题与此question有关。

我使用for循环创建了许多输入框。无论用户类型为什么值,都可以从该页面进入另一个JSP页面。输入框中的值正在正确获取。

但是在插入时,该值作为空白或null插入到数据库中。仅当用户按顺序键入第一输入框(第一输入框,第二输入框,第三输入框)时,才根据预期结果正确插入值。

即使我也在检查条件,也就是它是否包含空值。但它仍然会插入空值。

主要预期结果是,如果用户在文本框中输入特定值,则该值将正确插入,而不是将空白值插入数据库。

<!-----new.jsp---------------------------------------------->

    <%
        for(int i = 0; i<ar.size(); i++)
        {
            %><span class="left-check"><%=ar.get(i)%></span><%

    %>
            <!--name=abc will be used in jsp to get value selected in checkboxes-->

            <input id ="<%=idcounter%>" type="checkbox" name = "abc" value="<%=ar.get(i)%>" />
            <input class = "left-marg-input7 size" id ="<%=idcounter%>" type="text" name = "abc_val" /><br><br>

    <%
        idcounter++;
        }
    %>
  </center><br><br>                                 
            <center><button type= "submit" name="action" >SIGN UP</button></center>
            </form>
</body>
</html>

然后下一个jsp页面是:

<!------insertdata.jsp---------------------------------------------->

<html>
<%

String check[]= request.getParameterValues("abc");
String checkval[] = request.getParameterValues("abc_val");
String check_str = "";
String checkval_str = "";

    if(check != null && checkval != null)
    {
            // there might be more one checkbox selected so, using loop    
        for(int i=0; i<check.length;i++)
        {
            // printing values selected from
            check_str = check[i].toString();
            checkval_str = checkval[i].toString();
            if(checkval_str != null)
            {
                 %><script>alert(<%=checkval_str%>);</script><%
                 st.executeUpdate("insert into user_assign_leave(org_email,user_email,leave_name,assign_leave,balance_leave)values('"+org_email+"','"+email+"','"+check_str+"','"+checkval_str+"','"+checkval_str+"')");
            }
            st.executeUpdate("insert into user_assign_leave(org_email,user_email,leave_name,assign_leave,balance_leave)values('"+org_email+"','"+email+"','"+check_str+"','"+checkval_str+"','"+checkval_str+"')");
        }
    }
    st.executeUpdate("insert into user(org_name,org_email,name,email,mobile,custom_ID,pass)values('"+org_name+"','"+org_email+"','"+username+"','"+email+"','"+contactno+"','"+customer_id+"','"+password+"')");

%>
</body>
</html>

0 个答案:

没有答案