HTML表单输入字段将空值添加到MySQL数据库

时间:2018-10-25 10:59:56

标签: java html mysql jsp form-submit

我有下面的html表单,用户在其中保留一个房间。我正在尝试获取用户在jsp代码中输入的数据,如图所示,但是数据库中的所有值都添加为null,除了“ user_email”字段外,该字段被视为从servlet派发的属性。我的代码有问题吗?如果是这样,我如何从此表单的输入字段中获取值,并将其提交到下面的jsp代码。

public void insert(String d, String m, String y, String r, String n, String rt, String em) {
            Connection connection = null;
            PreparedStatement ppStm = null;

            try {
                connection = ConnectionConfiguration.getConnection();
                ppStm = connection.prepareStatement("INSERT INTO reservations (res_day,res_month,res_year,no_rooms,"
                        + "no_nights,room_type,user_email)"
                        + "VALUES (?,?,?,?,?,?,?)");

                int count = 1;
                ppStm.setString(count++, d);
                ppStm.setString(count++, m);
                ppStm.setString(count++, y);
                ppStm.setString(count++, r);
                ppStm.setString(count++, n);
                ppStm.setString(count++, rt);
                ppStm.setString(count++, em);
                ppStm.executeUpdate();

            } catch(Exception e) {
                e.printStackTrace();
            } finally {

                if (ppStm != null){
                    try {
                        ppStm.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                        }
                if (connection != null) {
                        try {
                            connection.close();
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                    }
                }
            }

        }

//插入功能

GBP 23.44   -> Valid

23.44       -> Valid

23          -> Valid

23 GBP      -> Valid

234.44 GBP  -> Valid

234.44      -> Valid

23.334 GBP  -> Invalid

234.443 GBP -> Invalid

234& GBP    -> Invalid  

2 个答案:

答案 0 :(得分:1)

php bin/console generate:bundle

答案 1 :(得分:0)

似乎您正在同一输入页面定义的jsp页面上读取参数。
没错,但是在读取参数之前,您无需检查表单是否已提交。

简单的解决方案是

检查请求中是否存在特定参数

  • (如果存在),然后读取所有其他参数。

    • 然后执行插入操作。
  • 如果不存在,则不要读取任何其他参数

    • ,请勿执行插入操作。

示例

<%  
    String operation = request.getParameter("operation");
    if ( operation != null and operation.equals( "addreservation" ) )
    {
        String d = request.getParameter("day");
        String m = request.getParameter("month");
        String y = request.getParameter("year");
        String r = request.getParameter("roomNo");
        String n = request.getParameter("nights");
        String rt = request.getParameter("rType");
        String em = String.valueOf(request.getAttribute("email"));

        ReservationDb rd = new ReservationDb();
        rd.insert(d, m, y, r, n, rt, em);
    }
    else
    {
        // ignore reading parameters
    }
;
%>