[英]Syntax error trying to create an sql table from Java
我要創建一個表,將從文本字段插入該表的名稱。 但是,當我運行查詢時,它給我一個錯誤,對此有任何幫助嗎? 我將代碼粘貼到這里:
public boolean CreateTable() {
TableNumber = jTextField4.getText();
try {
String password = null;
String s = "CREATE TABLE '"+TableNumber+ "' (Item char(50),Price char(50))";
ConnectionForOrders();
stmt = conn.createStatement();
stmt.executeUpdate(s);
boolean f = false;
ConnectionForOrdersclose();
我將從假設您的'"
gaff是一個錯字開始,因為它甚至不應該以這種方式編譯(我編輯了問題以解決以后的問題)。
除此之外,您不必將表名用單引號引起來。 不是:
創建表'tablename'(...)
您只需寫:
CREATE TABLE表名(...)
但是您甚至不應該做那么多,因為您是從文本字段獲取表名的。 阻止某人在該文本字段中輸入類似內容的方法是:
a(b int); DROP TABLE用戶;-
(當然,假設您在某處有一個用戶表)。 重要的是要記住,攻擊者可能會后第一次進入任意 SQL是很重要的;
,您的數據庫將盲目運行它。
TableNumber
好...一個數字嗎? 如果是這樣,則可能導致語法錯誤。
看起來撇號和引號在TableNumber
(右側)周圍是倒置的,這會產生編譯器錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.