SQLException: "Unknown column 'nome que eu coloco no JTextField' in 'field list' "[RESOLVIDO]

Bom Dia :smiley:

Queria uma ajuda com Database, eu estou tentando dar um “executeUpdate();”, mas ele me retorna um SQLException. O estranho que ele só faz isso para um capo do meu db, no outro ele preenche normal

                      if(!jtf.getText().isEmpty() && !jtf1.getText().isEmpty()) {
				String nome = jtf.getText();
				String tele = (String)jtf1.getText();
				
				try {
					SQLconnect.statement.executeUpdate("UPDATE `test`.`new_table` SET Nome = "+ nome +" WHERE ID = "+ linha +"");
					SQLconnect.statement.executeUpdate("UPDATE `test`.`new_table` SET Telefone = "+ tele +" WHERE ID = "+ linha +"");
				
				} catch (SQLException sqlE) {
					JOptionPane.showMessageDialog(null, "Erro: "+sqlE.getMessage()
					, "Erro SQLException!", 2);
					
					sqlE.printStackTrace();
				}
				
			}
			else {
				JOptionPane.showMessageDialog(null, "Erro: Preencha os campos!", "Campos Incompletos!", 2);
			}

Como podem ver, a variável “nome” é um JTextField, e a variável linha é a linha cujo estou selecionando em meu componente JTable. Até aí tudo bem, parece estar tudo certo, mas quando eu executo essas linhas ele me retorna um SQLException como no título. :c
O engraçado é que se eu comentar a primeira executeUpdate(); a outra ele executa normal. Não sei porque .-.

Obrigado a quem me ajudar :smiley:

EDIT NOTE:[color=red] [/color]

Aparentemente o código está certo, mas faltava um detalhe, apóstrofos e eu decidi mudar de Statement para PreparedStatement :p. O código correto segue abaixo:

SQLconnect.pStatement.executeUpdate("UPDATE NEW_TABLE SET NOME = '" + nome + "' WHERE ID = " + linha + "");
					SQLconnect.pStatement.executeUpdate("UPDATE `test`.`new_table` SET Telefone = '" + tele + "' WHERE ID = "+ linha +"");

[quote=RafaelCN]Bom Dia :smiley:

Queria uma ajuda com Database, eu estou tentando dar um “executeUpdate();”, mas ele me retorna um SQLException. O estranho que ele só faz isso para um capo do meu db, no outro ele preenche normal

                      if(!jtf.getText().isEmpty() && !jtf1.getText().isEmpty()) {
				String nome = jtf.getText();
				String tele = (String)jtf1.getText();
				
				try {
					SQLconnect.statement.executeUpdate("UPDATE `test`.`new_table` SET Nome = "+ nome +" WHERE ID = "+ linha +"");
					SQLconnect.statement.executeUpdate("UPDATE `test`.`new_table` SET Telefone = "+ tele +" WHERE ID = "+ linha +"");
				
				} catch (SQLException sqlE) {
					JOptionPane.showMessageDialog(null, "Erro: "+sqlE.getMessage()
					, "Erro SQLException!", 2);
					
					sqlE.printStackTrace();
				}
				
			}
			else {
				JOptionPane.showMessageDialog(null, "Erro: Preencha os campos!", "Campos Incompletos!", 2);
			}

Como podem ver, a variável “nome” é um JTextField, e a variável linha é a linha cujo estou selecionando em meu componente JTable. Até aí tudo bem, parece estar tudo certo, mas quando eu executo essas linhas ele me retorna um SQLException como no título. :c
O engraçado é que se eu comentar a primeira executeUpdate(); a outra ele executa normal. Não sei porque .-.

Obrigado a quem me ajudar :smiley:

EDIT NOTE:[color=red] [/color]

Aparentemente o código está certo, mas faltava um detalhe, apóstrofos e eu decidi mudar de Statement para PreparedStatement :p. O código correto segue abaixo:

SQLconnect.pStatement.executeUpdate("UPDATE NEW_TABLE SET NOME = '" + nome + "' WHERE ID = " + linha + ""); SQLconnect.pStatement.executeUpdate("UPDATE `test`.`new_table` SET Telefone = '" + tele + "' WHERE ID = "+ linha +""); [/quote]
Se vai usar PreparedStatement, faça da forma correta.
Da maneira que está usando, está sujeito a uma série de erros. Imagine que, por alguma razão, o nome é “Joana D’Arc”. Aliás, faça o teste…
Para usar adequadamente PreparedStatement, você terá que alterar a primeira query para:

String query = "UPDATE NEW_TABLE SET NOME = ? WHERE ID = ?";
PreparedStatement pstm = SQLconnect.pStatement;//Presumindo que pStatement seja uma constante de SQLconnect (ambos os nomes estão errados, caso pStatement seja constante, se não for, deveria ser acessado via getter).
pstm.setString(1, nome);
pstm.setLong(2, linha);//Ou setInt ou setFloat ou setDouble ou o setYyy correspondente ao que você tem como tipo de variável linha
pstm.executeUpdate(query)

Obrigado pelas dicas :smiley: