2015-02-09 47 views
0

我試圖選擇我的MySQL數據庫表和表名可以是任何東西不安全,因爲用戶選擇他們,我試圖做這樣的:如何選擇從MySQL表允許脫離人物

String table = "*jjs> o"; 
PreparedStatement stmt = conn.PrepareStatement("SELECT * FROM ? "); 
stmt.setString(1,table); 
stmt.executeQuery(); 

但似乎它會拋出異常,由於不可接受的命令,有人可以幫助我,我怎麼能實現呢?感謝

+0

什麼異常被拋出? – 2015-02-09 16:59:51

+0

您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以在第1行'* jjs> o''附近使用正確的語法。 – iamreza 2015-02-09 17:03:25

+0

捕獲SQLException並執行您想要的操作,如果用戶輸入無效的表名 – m0skit0 2015-02-09 17:04:38

回答

0

添加一個反勾號(`),以表名

select * from `*jjs> o`

+0

在你之後發佈的答案1秒後:D任何方式 – iamreza 2015-02-09 17:13:58

0

正常使用了反引號他回答,就像select * from `*jjs> o`沒有statement.Thanks金潤

+0

多數民衆贊成多我正在尋找反引號是不可見的。編輯你的答案:) – silentprogrammer 2015-02-09 17:18:05

+0

你注意到,但你的被接受,誰會看我的,嘿嘿 – iamreza 2015-02-09 17:20:10

相關問題