2014-03-25 69 views
1

當我將表單提交到我的JDBC連接頁面時,它會給出錯誤。 我提交的表格與數據這樣當字符串輸入包含引號時,MySQL語法錯誤

It's wrong 

它給出了一個錯誤如下圖所示

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您在您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法的錯誤'在行IN BOOLEAN MODE)和bot2 = 1' 附近使用說明書1

我的代碼是

 String Query="SELECT * FROM ques WHERE MATCH(subject) AGAINST('"+vv+"' IN BOOLEAN MODE) and bot2=1"; 
     Class.forName("com.mysql.jdbc.Driver"); 
     conn=DriverManager.getConnection("jdbc:mysql://localhost:3306     /wst","manohar","manohar"); 
     stmt=conn.prepareStatement(Query); 
     rs=stmt.executeQuery(Query); 
     while(rs.next()) 
     { 
      .... 
     } 

回答

2

嘗試這個代替:

String Query="SELECT * FROM ques WHERE MATCH(subject) AGAINST(? IN BOOLEAN MODE) and bot2=1"; 
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/wst","manohar","manohar"); 
stmt=conn.prepareStatement(Query); 
stmt.setString(1, vv); 
rs=stmt.executeQuery(); 

該技術被稱爲「參數化查詢」,它有幾個優點,其中之一是,你不必擔心字符串參數轉義特殊字符。

相關問題