Erro sintaxe - Erro na inserção ..query..mysql

12 respostas
F

Pessoal, blz?

Estou tentando executar a query abaixo, mas analisando as linhas, vi que nao tem erro no codigo…
somente o campo rastreamento é varchar…os outros sao todos int…tem alguma coisa isso?

trecho onde Inseri dados

String query = "Insert into pedido (id, id_cliente, cidade, rastreamento)" +
                  " values   ("+id+","+id_cliente+",'"+rastreamento+"',"+cidade+")";

Logo abaixo, tem outra parte que é responsavel pela alteração

String query = "update pedido "+
                      "set id_cliente = " + id_cliente + ", "+
                      "cidade = \"" + cidade + "\" " +
                      "rastreamento = \"" + rastreamento + "\" "+
                      "where id = \"" + id + "\"";

Tem algum erro nisto?

12 Respostas

UMC

tem erro meu caro!
você precisa passar o valores em aspas simples ‘valor’

vlw

F

O Campo que nao é numerico que precisa das aspas simples é o rastreamento…e ficou assim:

try {
          String query = "Insert into pedido (id, id_cliente, rastreamento, entrega_cidade)" +
                  " values   ("+id+","+id_cliente+",'"+rastreamento+"',"+cidade+")";
String query = "update pedido "+
                      "set id_cliente = " + id_cliente + ", "+
                      "cidade = '" + cidade + "' " +
                      "rastreamento =  '"+ rastreamento +"' "+
                      "where id = '" + id + "' ";

E Esta dando erro justamente neste campo…

UMC:
tem erro meu caro!
você precisa passar o valores em aspas simples ‘valor’

vlw

UMC

coloque aspas simples em todos! e faça o teste

dsystem

Qual erro está retornando Fabio?

F

Entao dsystem, blz?

Quando executo o netbeans, no log do tomcat aparece isso aqui:

Erro na inserção:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘rastreamento = ‘aa’ where id = ‘136718’’ at line 1

Este erro aparece quando executo o jsp…ele abre a tela de alteracao e quando altero o conteudo do campo rastreamento, ele acusa o erro

dsystem

Tente colocar

"'+rastreamento+'"

Ao invés de '"+rastreamento+"'

Ou seja, coloque primeiro aspas dupla e depois aspas simples e posta aqui o que deu =]

dsystem

Desculpa Fabio, não me atentei oara o erro…ESQUEÇA O QUE ESCREVI NO POST ACIMA

Na verdade ele está acusando erro perto da linha rastreamento. Pelo que entendi é erro no UPDATE.

troque seu update por esse

String query = "update pedido "+   
                      "set id_cliente = " + id_cliente + ", "+   
                      "cidade = " + cidade + ", " +   
                      "rastreamento =  '"+ rastreamento +"' "+   
                      "where id = " + id + " ";

Faça o teste

F

coloquei assim…

"'+rastreamento+'"

Ele ja ficou desesperado e ja deu erro sem executar…apareceu " Not Statement" “Unclosed character literal”…

dsystem:
Tente colocar

"'+rastreamento+'"

Ao invés de '"+rastreamento+"'

Ou seja, coloque primeiro aspas dupla e depois aspas simples e posta aqui o que deu =]

dsystem

Então. Desculpa, desconsidera o primeiro. Retorna para '"+rastreamento+"' e altera o seu update para

String query = "update pedido "+   
                      "set id_cliente = " + id_cliente + ", "+   
                      "cidade = '" + cidade + "', " +   
                      "rastreamento =  '"+ rastreamento +"' "+   
                      "where id = " + id + " ";

Faça esse teste

Só uma dúvida…Cidade é uma string ? Porque no seu select você coloca como int e no update como string…

F

Era isso mesmo dsystem,

Valeu mesmo pela ajuda e ensino

abraçao cara

dsystem:
Então. Desculpa, desconsidera o primeiro. Retorna para '"+rastreamento+"' e altera o seu update para

String query = "update pedido "+   
                      "set id_cliente = " + id_cliente + ", "+   
                      "cidade = '" + cidade + "', " +   
                      "rastreamento =  '"+ rastreamento +"' "+   
                      "where id = " + id + " ";

Faça esse teste

Só uma dúvida…Cidade é uma string ? Porque no seu select você coloca como int e no update como string…

dsystem

Que isso, precisando estamos ai.

Você entendeu o que foi alterado né??? =]

pmlm

Para evitar esses problemas com as ': http://java.sun.com/javase/6/docs/api/java/sql/PreparedStatement.html

Criado 1 de julho de 2010
Ultima resposta 2 de jul. de 2010
Respostas 12
Participantes 4