Ir para conteúdo

POWERED BY:

Arquivado

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

Sphinter

Erro de Syntax

Recommended Posts

Olá amigos.. to quebrando a cabeça pra ver da onde ta o erro.. alguem pode me ajudar?

 

INSERT INTO inscricoes SET codconvite = ' nu1gu6', nomecompleto = '1488safsa', nomecracha = '131313', rgnum = '12232323', rgexpedidor = '', rgdata = '1992-11-01', cpf = '818.303.555-66', enderecoresidencial = 'Barbosa', cidade = 'Curita', uf = 'PR', cep = '81830-390', enderecocomercial = '13212123asf', comcidade = 'safas', comuf = 'AM', comcep = '12131212', comtel = '', comcel = 'safas', email = 'ete@teste.com', datanascimento = '1988-11-01', sexo = 'm', natural = 'Curiita', estadocivil = 'o', tamanhocamiseta = 'gg', empresa = 'fasfs', areaatuacao = 'fsafa', cargo = 'fsaf', tempofuncao = 'fsafas', usuariomedicamento = 's', medicamentonome = '415415', medicamentoalergico = 'n', fumante = 's', fatosaude = 'fsafasjpoihas fsaj fsa', emergencianome = '11122', emergenciatel = '(44)5556-5446', emergenciacelular = '(44)5545-4564', planosaude = 's', planosaudenome = 'fsa45f', planosaudecod = ' 45456456456', restricaoalimentar = '44456465', aconomecompleto = '456', acorgnum = '32123121', acorgexpedidor = '2313', acotel = '(11)1215-8789', acocel = '(45)4564-5646', acoemail = '112123@23132', acotamanhocamiseta = 'g', acousuariomedicamento = 's', acomedicamentonome = '545 ', acomedicamentoalergico = 's', acofumante = 's', acofatosaude = '456465', acoemergencianome = '45656', acoemergenciatel = '(45)6454-5645', acoemergenciacel = '(45)6454-4444', acoplanosaude = '', acoplanosaudenome = '', acoplanosaudecod = '', acorestricaoalimentar = '456456456'

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 'natural = 'Curiita', estadocivil = 'o', tamanhocamiseta = 'gg', empresa = 'fasfs' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue um pedaço da estrutura do banco, não consigo ver nenhum erro.. a query está enviando os dados compativeis com as colunas...

 

comcel	  varchar(13)
email 	varchar(200)
datanascimento 	date
sexo 	enum('m', 'f') 
natural 	varchar(200) 
estadocivil 	set('c', 's', 'o')
tamanhocamiseta 	set('p', 'm', 'g', 'gg')
empresa 	varchar(150) 
areaatuacao 	varchar(200)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara descobri oque era.. depois de uma boa noite de sone e de cabeça mais "fria"...

 

Não da pra usar "natural" como nome de coluna do MySql que ele da erro, alterei para "naturalde" e foi...

 

Sei tambem que colunas com "desc" não funciona e por ai vai...

 

Aproveitando o tópico alguem sabe onde tem uma "BlackList" de nomes de colunas?

 

vlw e abrigado giesta pela ajuda ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

por isso que se costuma colocar `` em volta do nome do campo, daí você pode usar o nome que quiser:

CREATE TABLE `test` (                                          
         `natural` datetime default NULL,                             
         `owner` int(20) default NULL,                                
         `extended` binary(20) default NULL,                          
         `explain` blob,                                              
         `int` int(11) default NULL,                                  
         `varchar` varchar(20) collate utf8_unicode_ci default NULL,  
         `text` text collate utf8_unicode_ci                          
       ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci   

SELECT * FROM `test` WHERE `natural` = '0000-00-00 00:00:00' AND `owner` = 1 AND `extended` IS NOT NULL AND `explain` IS NOT NULL AND `int` = 281883 AND `varchar` = 'teste' AND `text` IS NOT NULL

Usando os ` não precisa preocupar com blacklist de nomes de colunas. A maioria das pessoas que usa o MYSQL não se preocupa em fazer as queries da forma normalizada, que é colocar nome de campos e ALIASES entre `` e nomear tabelas explicitamente usando ALIAS. Daí acontecem mesmo estes problemas e as pessoas não sabem porquê. Tem gente que tem uma consulta enorme, sem nenhuma dessas normalizações, e acaba não sabendo de onde vem o erro, como é o seu caso.

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.