日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了從表(HTML)中獲取輸入變量,并將值作為數據庫表的變量名提供的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我想為患者數據庫系統創建一個表單。然后,我將為表單的每個文本框提供一些輸入數據,這些數據將存儲在MySQL數據庫中。

我按如下方式編寫了一個JSP文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<%@ page import="java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
 <table>
<tr><td>Pid</td><td><input type="text" name="pid" required /></td></tr>
<tr><td>Name</td><td><input type="text" name="patientname" required /></td></tr>
<tr><td>Address</td><td><input type="text" name="patientaddress" ></td></tr>
<tr><td>Phone number</td><td><input type="number" name="Ph" required /></td></tr>
<tr><td>Email</td><td><input type="email" name="email" required /></td></tr>
<tr><td>Type</td><td><input type="text" name="patienttype" ></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="register"></td></tr>

</table>

<%
  
  try {
    
    Class.forName("com.mysql.cj.jdbc.Driver");
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/hospitalm","root","1234");
    out.println ("database successfully opened.");
    String sql = "INSERT INTO patient (pid, pname, address, phone, email_id,ptype) values (?, ?, ?,?,?,?)";
    PreparedStatement statement = con.prepareStatement(sql);
    statement.setString(1, Pid);
    statement.setString(2, Name);
    statement.setString(3, "Forrest");
    statement.setDouble(4, 664208158);
    statement.setString(5, "ava@gmail.com");
    statement.setString(6,"G");
    int row = statement.executeUpdate();
    if (row > 0) {
        System.out.println("One row inserted.");
    }
  }
  catch(SQLException e) {
    out.println("SQLException caught: " +e.getMessage());
  }


%>
</body>
</html>

這兩行引發錯誤

    statement.setString(1, Pid);
    statement.setString(2, Name);

如果我輸入一些值,如PID為‘P101’,名稱為‘John’,那么我可以輕松地在數據庫Hospital italm上輸入記錄。

但是如果我嘗試PID和NAME這兩個表的變量名,

<tr><td>Pid</td><td><input type="text" name="pid" required /></td></tr>
<tr><td>Name</td><td><input type="text" name="patientname" required /></td></tr>

我收到錯誤。

我如何解決此問題?

jsp

推薦答案不會自動將請求參數綁定到JAVA變量,這正是您在此嘗試執行的操作。

獲取參數需要直接查詢請求對象。類似于:

statement.setString(1, request.getParameter("Pid"));
statement.setString(2, request.getParameter("Name"));

附錄:

關于DOUBLE(或其他非字符串),您可以做兩件事。

一,可以在飛翔上折算:

statement.setDouble(4, Double.parseDouble(requests.getParameter("phone")));

其次,您可以依靠SQL驅動程序為您完成此操作。

statement.setString(4, requests.getParameter("phone"));

JDBC中的&quot;setXXX&quot;基于您正在設置的值,而不是基于數據庫中列的數據類型。不可避免的是,在大多數情況下,無論您在JDBC語句中設置什么,都會在將其傳送到數據庫之前轉換為字符串。因此,您只需使用setString并完成它,然后讓驅動程序/db找出它。

無論哪種方式,如果您發送格式不正確的數據(即電話號碼的&QOOT;TOM&QOOT;),您都會從Double.parseDouble獲得異常,或者當DB在插入期間嘗試轉換它時。但這與簡單地設置參數是兩個不同的問題。

這篇關于從表(HTML)中獲取輸入變量,并將值作為數據庫表的變量名提供的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:errorTakinginputvariablesfromatable(HTML)andsupplythevaluesasavaria
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定