Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, boa noite!
Estou fazendo uma página em php para digitação de uns formulários em banco de dados MySql, mas na hora de salvar ele tá me retornando esse erro:
"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 'long,suscarea,digitador,data_hora) VALUES ('c56b9cc9','ANTONIO GUARDA','27/11/20' at line 1Dados adicionados com sucesso!"
Segue o meu código, que salva os dados no banco:
$cod_form = substr(md5(uniqid(time())), 0, 8);
$profissional = strtoupper($_POST['profissional']);
$data = strtoupper($_POST['data']);
$cod_cprm = strtoupper($_POST['cod_cprm']);
$cod_uni_cen = strtoupper($_POST['cod_uni_cen']);
$ref_geo = strtoupper($_POST['ref_geo']);
$lat = strtoupper($_POST['lat']);
$long = strtoupper($_POST['long']);
$suscarea = $_POST['suscarea'];
$digitador = $_SESSION['nome'];
$data_hora = date('Y-m-d H:i:s');
$sql = "INSERT INTO A1T_AEMAR (cod_form,profissional,data,cod_cprm_cod_uni_cen,ref_geo,lat,long,suscarea,digitador,data_hora) VALUES ('$cod_form','$profissional','$data','$cod_cprm','$cod_uni_cen','$ref_geo','$lat','$long','$suscarea','$digitador','$data_hora')";
$resultado = mysql_query($sql);
echo mysql_error();
echo "Dados adicionados com sucesso!\n";
Alguém pode me dar uma ajuda? Já tentei de tudo e não consigo. Vale lembrar que uso esse mesmo código, mas para inserção de dados em outra tabela do mesmo banco, e funciona.
Obrigado, desde já!
>
long é uma palavra reservada...
isso ai. deixe esse campo entre `` ou mude o nome dele.
Sugestão .
Crie sua query no seguinte formato:>>
$sql= " INSERT INTO tabela(id,nome) VALUES('1', 'Xavier') " or die(mysql_error());
Obrigado pelas respostas! São dois campos de latitude e longitude, nem me liguei quando botei o nome do campo para long. Fiz a troca, como recomendado, para "LNGI", mas agora o erro é outro:
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 '00,00''','00º00'00,00''','MOVIMENTO DE MASSA','','2013-05-23 19:09:55')' at line 1Dados adicionados com sucesso!
Alguma sugestão?
separado de decimal é ponto (.)
Não é problema de ponto, ele está usando coordenadas e os minutos são representados por um apóstrofo, logo ele dá erro nisto, tem que escapar ele, use o mysql_real_escape_string para isto.
ESerra, muito obrigado pela resposta! Isso mesmo, como são coordenadas tinha que usar o apóstrofo, mas conversando com o pessoal que vai de fato usar o programa, eles decidiram por substituir tudo colocar "G" para graus, "M" para minutos e "S" para segundos. Mas fica a sua dica, se eles mudarem de ideia de novo, ja tenho a solução...
Mais uma vez obrigado!
Abraços!
Não deveria ser uma vírgula ao invés do underline entre o cod_cprm e o cod_uni_cen?
INSERT INTO A1T_AEMAR (cod_form,profissional,data,cod_cprm,cod_uni_cen,ref_geo,lat,long,suscarea,digitador,data_hora)
long é uma palavra reservada...