Ir ao conteúdo
  • Cadastre-se

Integração MySQL e PHP


Ir à solução Resolvido por DiF,

Posts recomendados

Oi, galera, estou com problemas com a integração entre MySQL e PHP. Eu criei o banco de dados e o arquivo php que insere os dados (cadastro de usuário) mas quando vou ver o meu banco de dados, ele está vazio (no caso a tabela está vazia, nenhum dado é inserido).

Como posso resolver?

 

meu código:

<?php$nome = $_POST['nome'];$snome = $_POST['sobrenome'];$sexo = $_POST['sexo'];$data = $_POST['data'];$escolar = $_POST['nvlesc'];$email = $_POST['email'];$emailconf = $_POST['emailconf'];$cpf = $_POST['cpf'];$login = $_POST['login'];$senha = $_POST['regsenha'];$senhaconf = $_POST['regsenhaconf'];//opcionais$endereco = $_POST['endereco'];$cidade = $_POST['cidade'];$estado = $_POST['estado'];$cep = $_POST['cep'];$tel = $_POST['tel'];echo $nome.'<br>';echo $snome.'<br>';// Fazer tudo daki pra baixo$erro = 0;if (empty($nome)) {    echo camponome;    $erro=1;    }if (empty($snome)) {    echo camposnome;    $erro=1;}if ($erro == 0) {    $conexao = new mysqli('localhost', 'root', '', 'cadastro');        // Check connection    if ($conexao->connect_error) {        die("Connection failed: " . $conexao->connect_error);    }    echo "Connected successfully<br>";            $sql = 'INSERT INTO usuarios (nome, sobrenome) VALUES (\'$nome\', \'$snome\')';    if ($conexao->query($sql) == TRUE){        echo "gravou!<br>";    }    else {        echo "erro: ".$sql.'<br>'.$conexao->error.'<br>';    }        $conexao->close();        echo 'fechou';}$back = $_SERVER['HTTP_REFERER'];//header('Location: ' . $back);?>
Link para o comentário
Compartilhar em outros sites

  • Moderador

@Enrique René

 

Esta linha: 

 $sql = 'INSERT INTO usuarios (nome, sobrenome) VALUES (\'$nome\', \'$snome\')';

Tenta fazer assim:

 $sql = "INSERT INTO usuarios (nome, sobrenome) VALUES ('$nome', '$snome')";

ou assim :

 $sql = 'INSERT INTO usuarios (nome, sobrenome) VALUES ("$nome", "$snome")';

Sobre o código,  precisa ser exatamente assim?  Daria para melhorar a prática, em menos linhas.

Link para o comentário
Compartilhar em outros sites

@Enrique René

 

Esta linha: 

 $sql = 'INSERT INTO usuarios (nome, sobrenome) VALUES (\'$nome\', \'$snome\')';

Tenta fazer assim:

 $sql = "INSERT INTO usuarios (nome, sobrenome) VALUES ('$nome', '$snome')";

ou assim :

 $sql = 'INSERT INTO usuarios (nome, sobrenome) VALUES ("$nome", "$snome")';

Sobre o código,  precisa ser exatamente assim?  Daria para melhorar a prática, em menos linhas.

 

Vou tentar essas alterações mais tarde, mas só pra responder: não precisa ser exatamente assim nao. Só quero que a pessoa insira os dados e sejam salvos no BD. Depois vou fazer outro pra fazer o contrário, buscar o login e senha p verificar a entrada.

Link para o comentário
Compartilhar em outros sites

  • Moderador
  • Solução

Então tenta dessa forma, se por acaso não funcionar as modificações:

conexao.php

<?php    $conexao = mysqli_connect('localhost', 'root', '', 'cadastro'); 

recebeDados.php

<?php$nome = $_POST['nome'];$snome = $_POST['sobrenome'];$sexo = $_POST['sexo'];$data = $_POST['data'];$escolar = $_POST['nvlesc'];$email = $_POST['email'];$emailconf = $_POST['emailconf'];$cpf = $_POST['cpf'];$login = $_POST['login'];$senha = $_POST['regsenha'];$senhaconf = $_POST['regsenhaconf'];//opcionais$endereco = $_POST['endereco'];$cidade = $_POST['cidade'];$estado = $_POST['estado'];$cep = $_POST['cep'];$tel = $_POST['tel'];// Fazer tudo daki pra baixoif (empty($nome) OR empty($snome) ):    echo"<script>           alert('Campo vazio.');           history.go(-1);        </script>";    exit;endif;    include 'conexao.php';   $inserir = mysqli_query($conexao ,"INSERT INTO usuarios (nome, sobrenome) VALUES ('$nome', '$snome')");if($inserir):   echo"<script>           alert('Cadastro bem sucedido');           history.go(-1);        </script>";else:    echo "Aconteceu algo inesperado :("; endif;        mysqli_close($conexao); //?>

Basicamente, das linhas 23 a 29 faz a verificação de campo vazio.

Linha 31, inclui a conexao com o BD

Linha 33, faz a inserção

Linhas 35 a 42, testa se a inserção foi feita.

Link para o comentário
Compartilhar em outros sites

Deu certo mas surgiu outro problema... mas resolvi e queria compartilhar porque pode acontecer com outras pessoas.

 

Quando eu digitava o nome no campo input, pelo método POST vai como valor pra $nome (e o mesmo pras outras variáveis).

Quando eu abria o phpMyAdmin e via o que fora gravado, no campo nome tava gravado "$nome", ao invés de Enrique (o que digitei no campo).

Eu joguei um echo $nome no arquivo pra ver se ele não tava pegando o valor, mas tava, o problema era no MySQL mesmo... eu usei o comando p MySQL assim: 'INSERT ...bla bla bla... ("$nome", ....)';

 

Então eu inverti, onde estão as aspas duplas botei simple e vice-versa, aí gravou certinho. Então parece que o SQL não lê " com o $.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...