Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pienkovski

Erro de sintaxe

Recommended Posts

Amigos, o código é esse:

$sq = "INSERT INTO pgto (id, codi, stot, desc, tota, data)values('', '$codi', '$stot', '$desc', '$tota', 
'$data')";		
$re = mysql_query($sq,$conec) or die (mysql_error());

E o erro é esse:

 

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 'desc, tota, data)values('', 'i001', '27540.00', '826.2', '26713.8',
'2014-10-21'' at line 1
Não estou conseguindo encontrar o erro. Agradeço sua ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

'desc' é palavra reservada, tente renomear a coluna

(sim, engraçado, não dá problema criar uma coluna com esse nome.. vai entender..).

dica extra: se id é auto incremento, tire da sql, isso tb pode gerar conflitos..

Compartilhar este post


Link para o post
Compartilhar em outros sites

A outra coluna chama tota mesmo !?

 

O bom é que a coluna identifique positivamente o conteúdo

 

Codigo

Descricao

Valor_da_venda

Data_de_admissao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pienkovski,

 

Além das dicas do pessoal acima para resolver seu erro de sintaxe na query , aconselho que você se dedique a segurança também pois ao utilizar parâmetros como '' '$codi', '$stot', '$desc', '$tota' " de forma direta você pode ser vítmia de ataques de SQL Injection. E também pense na possibilidade de caso você troque o BD para por exemplo Postgre , você teria que alterar todos os códigos Mysql da sua aplicação para Postgre . A depender da aplicação isso pode ser muito tedioso e trabalhoso.

 

Sugiro que você dê uma olhada em uma classe do PHP chamada PDO (PHP Data Object ) .Ela é uma biblioteca de abstração de conexões de banco de dados que fornece uma interface comum para conversar com vários bancos de dados diferentes.

 

Segue os links para você entender melhor como ela funciona:

http://br2.php.net/pdo

http://www.phptherightway.com/

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma coisa que vc pode fazer é colocar crases nos campos, assim o MySQL entende como campos, e não palavras reservadas

 

$sq = "INSERT INTO `pgto` (`id`, `codi`, `stot`, `desc`, `tota`, `data`)values('', '$codi', '$stot', '$desc', '$tota', '$data')";

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.