Ir para conteúdo

POWERED BY:

Arquivado

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

Mauricio Cinelli

[Resolvido] Erro de sintaxe

Recommended Posts

Pessoal, asim, estou fazendo esse sistema de registro para um site, e está aparecendo "unexpected T_STRING", o erro se dá na linha 17, abaixo do comentario no codigo.

Me ajudem a corrigir esse erro de sintaxe que não acho em nenhum lugar.

Desde já agradeço.

 

 

 

<?php
 $servidor = "localhost";
 $bd = "teste";
 $usuario = "root";
 $senha = ""; 

$user=$_POST['usuario'];
$pass=$_POST['senha'];
$email=$_POST['email'];

$conn= @mysql_connect($servidor,$usuario,$senha)
or die ("Erro durante a conexão com o banco de dados!");

$db= @mysql_select_db($bd, $conn)
or die ("Erro na seleção de banco de dados!");

//a linha abaixo é onde mostra o erro de sintaxe!
mysql_query(INSERT INTO("NOME_USUARIO","SENHA","EMAIL") VALUES($user, $pass,$email));

mysql_close();

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, o erro está em sua SQL.

Está faltando o nome da tabela após o INSERT INTO:

 

mysql_query(INSERT INTO("NOME_USUARIO","SENHA","EMAIL") VALUES($user, $pass,$email));

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro de sintaxe PHP é porque está faltando aspas.

Tenta assim:

$sql = "INSERT INTO('NOME_USUARIO','SENHA','EMAIL') VALUES ('$user', '$pass', '$email')";
mysql_query($sql) or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aliás, ta errado várias coisas no SQL, eu normalmente uso assim:

 

$sql = "INSERT INTO tabela SET NOME_USUARIO = '$user', SENHA = '$pass', EMAIL = '$email'";
mysql_query($sql) or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

gente, fiz ali como o juni0r disse e agora aparece isso:

 

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 '('NOME_USUARIO','SENHA','EMAIL') VALUES ('', '', '')' at line 1

 

e agora, o que é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não está cadastrando, tipo, ele da como feito um registro no phpmy admin, so que os campos estãop vazios.

muito estranho.

alguem sabe como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, você está esperando os valores virem de um formulário, correto?

 

Confere se a action do form está correto, se o method é post.

Além disso, confere os nomes dos campos, verifica se existem:

$_POST['usuario'];

$_POST['senha'];

$_POST['email'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

está tudo nos conformes o metodo e as variaveis.

assim, não sei se está certo, mas no BD, os tres campos estão como tipo "varchar(20)".

Não sei se é isso que pode estar dando problemas, se for isso me informem.

Os campo estão ficando nulos, porém é marcado o registro, porém..... é como eu disse, os campos estão nulos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta o seguinte para testar se as variaveis estão corretas...

 

<?php
$servidor = "localhost";
$bd = "teste";
$usuario = "root";
$senha = "";

$user=$_POST['usuario'];
$pass=$_POST['senha'];
$email=$_POST['email'];

var_dump($user);
echo "<br>";
var_dump($pass);
echo "<br>";
var_dump($email);
echo "<br>";

die();
//Morreu aqui!

$conn= @mysql_connect($servidor,$usuario,$senha)
or die ("Erro durante a conexão com o banco de dados!");

$db= @mysql_select_db($bd, $conn)
or die ("Erro na seleção de banco de dados!");

//a linha abaixo é onde mostra o erro de sintaxe!
mysql_query(INSERT INTO("NOME_USUARIO","SENHA","EMAIL") VALUES($user, $pass,$email));

mysql_close();

?>

Os "var_dump" te mostrarão os valores contidos nas variaveis.

Se os valores estão corretos, tente o seguinte:

 

<?php
$servidor = "localhost";
$bd = "teste";
$usuario = "root";
$senha = "";

$user = $_POST['usuario'];
$pass = $_POST['senha'];
$email = $_POST['email'];

$conn = @mysql_connect($servidor,$usuario,$senha) or die("Erro durante a conexão com o banco de dados!");
$db = @mysql_select_db($bd, $conn) or die("Erro na seleção de banco de dados!");

mysql_query(" INSERT INTO nome_da_sua_tabela SET NOME_USUARIO = '$user', SENHA = '$pass', EMAIL = '$email' ");

//Mostra se ocorreu algum erro
var_dump(mysql_error());

mysql_close();

?>

 

E veja o que retorna.

Compartilhar este post


Link para o post
Compartilhar em outros sites

engraçado.... os resultados obtidos por var_dumpsão mostrados na tela, exatamente os valores certos. Porém, no banco de dados, os valores estão em branco. Pode ser alguma coisa no banco de dados?

 

abaixo vou colocar um print screen do phpmyadmin, pq creio que seja as definições das tabelas, creio que estejam erradas, causando esse erro infernal.

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok.. deixa eu ver se eu entendi ....

 

- Os valores de $user, $pass e $email no var_dump estão corretos. ( exemplo: nome1, 123456 e nome1@testemaill.com )

- Inserindo o segundo código ele não retorna erro algum no var_dump ( PS.: VOCÊ DEVE TROCAR nome_da_sua_tabela POR usuarios OK ? mas provavelmente você fez isso... )

- Você sabe que, para ver os valores no banco de dados, você deve clicar em "Visualizar" né ?

- O nome do usuario e a senha do MySQL são root e *branco* né ? ( creio que sim, pois senão ele retornava um erro )

 

Confirme todas essas questões pra mim, desculpe se eu estiver meio que sendo óbvio em alguma pergunta, mas é que eu to tentando varrer todas as possibilidades, ok ? :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso, os valores com var_dump retornam corretos, mesmo adicionando a segunda parte.

 

Porém, agora nem registro mais ele não cria, ele simplesmente não faz nada.

o var_dump retorna correto, porem nada acontece no banco de dados.

 

:huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho dificil, pois o próprio PHPMyAdmin utiliza o banco de dados, compreendes ? então se houvesse algo errado nas configurações do teu banco de dados, o próprimo PHPMyAdmin acusaria algum erro.

 

Bom, eu estou achando isso tudo meio estranho, mas eu acredito que seja algo bem simples que ainda não percebemos ... Mas pra matar de vez a possibilidade que você citou, vamos testar o seguinte:

 

<?php
$servidor = "localhost";
$bd = "teste";
$usuario = "root";
$senha = "";

$user = $_POST['usuario'];
$pass = $_POST['senha'];
$email = $_POST['email'];

$conn = @mysql_connect($servidor,$usuario,$senha) or die("Erro durante a conexão com o banco de dados!");
$db = @mysql_select_db($bd, $conn) or die("Erro na seleção de banco de dados!");

echo "INSERT INTO nome_da_sua_tabela SET NOME_USUARIO = '$user', SENHA = '$pass', EMAIL = '$email'";

mysql_close();

?>

Copie oq ele escrever na tela ( o resultado ) vá até o PHPMyAdmin e selecione a opção "SQL" e cole por lá.

De um "executar query" e veja se algo foi adicionado nesse seu banco de dados.

Caso positivo, então não há nada de errado com as configurações do MySQL, concordas ? ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

nolfolk, fazendo a consulta lá no phpmyadmin, o registro foi feito, como podemos agora, fazer os registros sem a necessidade de copiar o resultado da tela e ir lá em SQL e realizar a query?

:D

 

ja posto em outro post

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.