Ringeril 0 Denunciar post Postado Dezembro 5, 2008 Boas, Estou fazendo esse insert, grande insert, mas o que acontece é o seguinte 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 'for, des, agi, hab, atq1, atq2, atq3, atq4, usuario2, poke12, ' at line 12 Já revisei o insert e não encontrei o erro, então venho pedir uma ajuda a vocês. $sql = mysql_query("INSERT INTO desafio ( usuario, poke1, poke2, poke3, poke4, poke5, poke6, level, vida, vidat, for, des, agi, hab, atq1, atq2, atq3, atq4, usuario2, poke12, poke22, poke32, poke42, poke52, poke62, level2, vida2, vidat2, for2, des2, agi2, hab2, atq12, atq22, atq32, atq42) VALUES( '{$user}', '{$pid1}', '{$pid2}', '{$pid3}', '{$pid4}', '{$pid5}', '{$pid6}', '{$plv1}', '{$pvi1}', '{$pvit1}', '{$pfor}', '{$pdes}', '{$pagi}', '{$phab}', '{$patq1}', '{$patq2}', '{$patq3}', '{$patq4}', '{$userdes}', '{$pid12}', '{$pid22}', '{$pid32}', '{$pid42}', '{$pid52}', '{$pid62}', '{$plv12}', '{$pvi12}', '{$pvit12}', '{$pfor2}', '{$pdes2}', '{$pagi2}', '{$phab2}', '{$patq12}', '{$patq22}', '{$patq32}', '{$patq42}') ") or die( mysql_error() ); Abraço! Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
~TiuTalk~ 7 Denunciar post Postado Dezembro 5, 2008 Coloque o nome da tabela e o nome das colunas entre crases, assim: INSER INTO `tabela` (`campo1`, `campo2`) .... Pode ser que resolva Compartilhar este post Link para o post Compartilhar em outros sites
Ringeril 0 Denunciar post Postado Dezembro 6, 2008 ~TiuTalk~ Fiz o que você disse e me retornou 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 ''desafio' ( 'usuario', 'poke1', 'poke2', 'poke3', 'poke4', 'poke5', ' at line 1 $sql = mysql_query("INSERT INTO 'desafio' ( 'usuario', 'poke1', 'poke2', 'poke3', 'poke4', 'poke5', 'poke6', 'level', 'vida', 'vidat', 'for', 'des', 'agi', 'hab', 'atq1', 'atq2', 'atq3', 'atq4', 'usuario2', 'poke12', 'poke22', 'poke32', 'poke42', 'poke52', 'poke62', 'level2', 'vida2', 'vidat2', 'for2', 'des2', 'agi2', 'hab2', 'atq12', 'atq22', 'atq32', 'atq42') VALUES( '{$user}', '{$pid1}', '{$pid2}', '{$pid3}', '{$pid4}', '{$pid5}', '{$pid6}', '{$plv1}', '{$pvi1}', '{$pvit1}', '{$pfor}', '{$pdes}', '{$pagi}', '{$phab}', '{$patq1}', '{$patq2}', '{$patq3}', '{$patq4}', '{$userdes}', '{$pid12}', '{$pid22}', '{$pid32}', '{$pid42}', '{$pid52}', '{$pid62}', '{$plv12}', '{$pvi12}', '{$pvit12}', '{$pfor2}', '{$pdes2}', '{$pagi2}', '{$phab2}', '{$patq12}', '{$patq22}', '{$patq32}', '{$patq42}') ") or die( mysql_error() ); Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Dezembro 6, 2008 O erro é a aspa no nome da tabela: INSERT INTO 'desafio'deixe sem, assim INSERT INTO desafioMovido: PHP=>MySQL Compartilhar este post Link para o post Compartilhar em outros sites
Ringeril 0 Denunciar post Postado Dezembro 6, 2008 Marcio Leandro Tirei as aspas do nome da tabela e recebi 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 ''usuario', 'poke1', 'poke2', 'poke3', 'poke4', 'poke5', 'poke6', '' at line 2 Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Dezembro 6, 2008 primeiro.... 'for' eh palavra reservada pra ser usada tem q usar o plic deitado (``) segundo... você nao precisa colocar os campos durante o insert desde q exista a mesma qtde de valores sendo inserida exemplo: INSERT INTO desafio VALUES( '{$user}', '{$pid1}', '{$pid2}', '{$pid3}', '{$pid4}', '{$pid5}', '{$pid6}', '{$plv1}', '{$pvi1}', '{$pvit1}', '{$pfor}', '{$pdes}', '{$pagi}', '{$phab}', '{$patq1}', '{$patq2}', '{$patq3}', '{$patq4}', '{$userdes}', '{$pid12}', '{$pid22}', '{$pid32}', '{$pid42}', '{$pid52}', '{$pid62}', '{$plv12}', '{$pvi12}', '{$pvit12}', '{$pfor2}', '{$pdes2}', '{$pagi2}', '{$phab2}', '{$patq12}', '{$patq22}', '{$patq32}', '{$patq42}' terceiro... fica bem melhor usar a sintaxe do update para fazer inserts grandes exemplo: INSERT INTO tabela set campo_a = '$a', campo_b = '$b', campo_c = '$c', quarto.... nao sou craque em php, mas pq as variaveis estao entre chaves ( {} ) ? espero ter ajudado Compartilhar este post Link para o post Compartilhar em outros sites
Ringeril 0 Denunciar post Postado Dezembro 6, 2008 giesta Colocando a string entre chaves todo o seu interior é preservado. Na verdade nunca me preocupei com isso. Vou tentar fazes o que disse. Abraço. ------------------------------------ Coloquei da maneira dita e recebi esse erro: Column count doesn't match value count at row 1 Depois coloquei uma aspas simples vazia '' ,pelo campo id autoincrement, e recebi esse erro: Incorrect integer value: '' for column 'id' at row 1 Foi feito dessa maneira: $sql = mysql_query("INSERT INTO desafio VALUES( '', '{$user}', '{$pid1}', '{$pid2}', '{$pid3}', '{$pid4}', '{$pid5}', '{$pid6}', '{$plv1}', '{$pvi1}', '{$pvit1}', '{$pfor}', '{$pdes}', '{$pagi}', '{$phab}', '{$patq1}', '{$patq2}', '{$patq3}', '{$patq4}', '{$userdes}', '{$pid12}', '{$pid22}', '{$pid32}', '{$pid42}', '{$pid52}', '{$pid62}', '{$plv12}', '{$pvi12}', '{$pvit12}', '{$pfor2}', '{$pdes2}', '{$pagi2}', '{$phab2}', '{$patq12}', '{$patq22}', '{$patq32}', '{$patq42}') ") or die( mysql_error() ); Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Dezembro 6, 2008 pra resolver sua situação você só precisa pegar a primeira consulta q você postou e por `` na coluna for pois for eh palavra reservada Compartilhar este post Link para o post Compartilhar em outros sites
Ringeril 0 Denunciar post Postado Dezembro 6, 2008 Fiz isso aqui: $data = mysql_query("SELECT MAX(id) AS id FROM desafio"); $row = mysql_fetch_array($data); $iddes = $row[id]+1; E adicionei no insert: $sql = mysql_query("INSERT INTO desafio VALUES( '{$iddes}', '{$user}', '{$pid1}', '{$pid2}', ........ Agora fez o insert certinho. Obrigado a todos. ~TiuTalk~ Marcio Leandro giesta Abraço! Compartilhar este post Link para o post Compartilhar em outros sites