2013-11-25 46 views
0

有人可以幫我解決我現在遇到的問題嗎?無法通過NetBeans插入MySQL

我有一組問題(調查)。當用戶完成調查時,它會插入到我的數據庫中。

但是,現在,當我提交調查時,它不會將結果插入到我的數據庫中。

這裏是我的代碼:

try { 



     //Process - Query from SQL  
    String strSqlnsert = "INSERT INTO Customers (MembershipID, Contact, Email, Address, SurveyStatus, Subscription) VALUES" 
      + " ('"+ member_ID + "', " + contact_num + ", '" + email_add + "', '" + mail_add + "' , " + radio_group + "," + receive_info + ")";    



      Class.forName("com.mysql.jdbc.Driver"); 
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/customers", "root", "password"); 
      Statement stmt = conn.createStatement(); 

      ResultSet rs = stmt.executeQuery(strSqlnsert); 

我還加庫的JDBC庫中的文件夾中。

+0

看來非數字值沒有引用。 – marekful

+0

你得到的錯誤是什麼? –

+0

@a_horse_with_no_name沒有錯誤,只是我不能插入結果 – userNoIdea

回答

0

看來非數值中沒有報價

而不是

" + email_add + ", 

嘗試

'" + email_add + "', 

在下面的INSERT語句

INSERT INTO table (field1, field2) VALUES (5, 'this is a string'); 

的「這是一個字符串'是包裝d在引號中,因爲field2的類型爲VARCHAR。 field1是INT,所以分配給它的值(5)不需要引用。


VALUES名單必須在大括號過於又一次,非數值必須加引號:

String strSqlnsert = "INSERT INTO Customers (MembershipID, Contact, Email, Address, SurveyStatus, Subscription) VALUES (" + member_ID + ", " + contact_num + ", '" + email_add + "', '" + mail_add + "', '" + radio_group + "', '" + receive_info + "')"; 
+0

整行有錯誤,如果我添加 – userNoIdea

+0

問題仍然是......您需要清理引用問題。 – marekful

+0

我的radiogroup && receiveInfo是int,而memberid是varchar .. 是這樣嗎? String strSqlnsert =「插入到Customers(MembershipID,Contact,Email,Address,SurveyStatus,Subscription)VALUE」 +「('」+ member_ID +「',」+ contact_num +「,'」+ email_add +「' '「+ mail_add +」',「+ radio_group +」,「+ receive_info +」)「; – userNoIdea

0

儘量讓一份聲明中,你可以打電話SETINT或PreparedStatement類的了setString方法。所以它會自動刪除字符串或數字混淆。

BTW preparedStatement是在sql查詢中傳遞參數的最佳方法,不要使用Statement類作爲參數sql查詢。