Erro de Syntax

Galera.

desenvolvi um sistema Web…e em uma pagina jsp. eu coloquei um codigo de envio de cadastro para o banco…o codigo é esse:

st.executeUpdate("insert into admin(log_codigo, log_usuario, log_senha, log_nivelacesso) values("+request.getParameter("tf_codigo")+",'"+request.getParameter("tf_usuario")+"','"+request.getParameter("tf_senha")+"','"request.getParameter("tf_nivelacesso")+"')");

so que quando eu rodo ele da dois erros erro…esses ai abaixo.

An error occurred at line: 58 in the jsp file: /cadAdmin.jsp
Syntax error on token “request”, delete this token

An error occurred at line: 58 in the jsp file: /cadAdmin.jsp
The method getParameter(String) is undefined for the type String

não to vendo o erro…alguem tem algum dica ai?

Poste o codigo da linha 58 da pagina cadAdmin.jsp há um erro ali

Na verdade são dois erros na mesma linha…

olha so:

Primeiro erro:

58: st.executeUpdate(“insert into admin(log_codigo, log_usuario, log_senha, log_nivelacesso) values(”+request.getParameter(“tf_codigo”)+",’"+request.getParameter(“tf_usuario”)+"’,’"+request.getParameter(“tf_senha”)+"’,’“request.getParameter(“tf_nivelacesso”)+”’)");

segundo erro:

58: st.executeUpdate(“insert into admin(log_codigo, log_usuario, log_senha, log_nivelacesso) values(”+request.getParameter(“tf_codigo”)+",’"+request.getParameter(“tf_usuario”)+"’,’"+request.getParameter(“tf_senha”)+"’,’“request.getParameter(“tf_nivelacesso”)+”’)");

mas eu sinceramente não vejo nada errado…onde estaria o erro?

Boa noite brother, então não seria melhor serparar esse seu comando sql para uma string? Consegues postar o método todo para eu dar uma olhada, e ver se consigo te ajudar, desta forma esta bem complicado, deveria separar o comando para uma variavel, após isso inserir “?” em cada parte do comando sql onde irá enviar cada variavel por exemplo

String nome = request.getParameter("nomeUsuario");

String sql = "select * from usuarios where nome=? ";

st.setString(1, nome);

compreende?

Posta o método todo, desta forma seu código está muito embaralhado e dificil de entender

beleza…pra galera entender…

esse codigo ai…e pra enviar um cadastro para o bando de dados…segue o codigo.

<body>
<p class="blue">Cadastro de Admin</p>

<% if(request.getParameter("acao")== null)
{
	out.println("Não Houve Conexão");
%>

<form id="frmInserirUsuario" name="frmInserirUsuario" method="post" action="cadAdmin.jsp?acao=gravar">
  <p>
	<label for="textfield"></label>
		<label for="tf_codigo">Código</label>
		:
		<input name="tf_codigo" type="text" id="tf_codigo" size="10" maxlength="10" />
		<label for="tf_usuario"><br />
		  <br />
	    Nome de Usuário:</label>
		<input type="text" name="tf_usuario" id="tf_usuario" />
		<label for="tf_senha">Senha:</label>
		<input type="password" name="tf_senha" id="tf_senha" />
	  </p>
	  <p>
		<label for="tf_nivelacesso">Nivel de Acesso</label>
		:
		<input name="tf_nivelacesso" type="text" id="tf_nivelacesso" size="20" maxlength="20" />
  </p>
	  <p>
		<input type="submit" name="button" id="button" value="Enviar" /> 
		<input type="reset" name="button2" id="button2" value="Limpar" />
	  </p>
</form>
    <% } 
	   else
	   {
		   out.println("Houve Conexão");
          try
       	     {
		 Class.forName("org.postgresql.Driver");		 		 
		 Connection con = DriverManager.getConnection("jdbc:postgresql://localhost/Admin","postgres","mudar123"); 	 	     
		 Statement st = con.createStatement();
		 
         st.executeUpdate("insert into admin(log_codigo, log_usuario, log_senha, log_nivelacesso) values("+request.getParameter("tf_codigo")+",'"+request.getParameter("tf_usuario")+"','"+request.getParameter("tf_senha")+"','"request.getParameter("tf_nivelacesso")+"')");	
		 
		    response.sendRedirect("cadUsuario.jsp");
		 
		     }
			 catch(ClassNotFoundException erroClass)
			 {
				out.println("Classe Driver 'JDBC não foi localizado, erro = "+erroClass); 
			  }
			  catch(SQLException erroSQL)
			 {
			  out.println("Erro de Conexão com o Banco de Dados, erro = "+erroSQL);
				 
			 }  		 
		 
	   } %>
<p class="blue">&nbsp;</p>
</body>
</html>

Certo.assim como eu te disse naquele trecho, onde você recebe o parameter atraves do request,getParameter(“nomedoseucampodoformulario”) voce armazena em uma String.
Por exemplo. digamos que voce tem um campo nome no seu formulario.

String nome = request.getParameter("campoNome");

entende?

e o comando sql separa em uma variavel também dessa forma:

String sql = "insert into usuarios (nome) values (?)";

PreaparedStatement stmt = seuMetodoDeConexao.prepareStatement(sql);

stmt.setString(1,nome);

stmt.execute();

algo assim.

Se quiser entre em contato comigo por email que te mando algum exemplo.

1 curtida

só da erro nessa linha (58)???

somente nessa linha…

qual teu email?

marcosvcontato.mv@gmail.com

@Legolas, primeiramente primeiro de tudo, você está permitindo SQL Injection , use o padrão de código que o @vmarcosp exemplificou para evitar dores de cabeça. Para maiores detalhes: http://claudioweiler.blogspot.com.br/2016/06/sql-injection.html

Quanto aos 2 erros, provavelmente é somente 1 erro que está propagando efeitos. A mensagem “Syntax error on token” faz referência a um erro de sintaxe que não é possível identificar no código que você passou, então a minha suspeita é que você tenha copiado trecho de código de algum lugar que trouxe caracteres inválidos ao seu código. Então a primeira tentativa é pedir para a sua IDE exibir os caracteres ocultos e procurar um caractere estranho, e a próxima tentativa é copiar seu trecho de código em um editor de texto simples como o bloco de notas e procurar por algo diferente, a última (e mais trabalhosa) é remover e reinserir todos os caracteres não alfanuméricos novamente, começando pelas aspas duplas, depois pelas aspas simples, espaços, tabulações, operadores ( + . , ; ) e parenteses. Mas, tenho quase certeza que deve ser alguma das aspas.

Falouzs!!!

Na verdade não copiei nada…fiz o que o professor pediu pra fazer…com ele funcionou, por isso nao vejo o erro…mas vou ver essas das aspas…obrigado.

Ok, achei o seu erro:

Hum…faltou o + ne…Caramba veio…um erro desses…puts…mas valeu mano…valeu mesmo…