Ir para conteúdo

Arquivado

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

aantunesl

Erro ao gravar no banco de dados

Recommended Posts

Pessoal, estou precisando da ajuda de vocês.
Fiz um cadastro ( form ), e estava gravando Usuario, Senha e Email, porem depois que adicionei novos campos, não esta gravando. Alguem pode da uma olhada no codigo por favor?

<!-- FORM CADASTRO.PHP -->

<html>
<head>
<title> Cadastre-se </title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type='text/javascript' src='js/jquery.js'></script>
        <script type='text/javascript' src='js/cep.js'></script>
</head>
<body>
<form method="POST" action="gravar.php">

<!-- login -->
<input type="text" name="login" placeholder="Usario" id="login"><br>
<input type="password" name="senha" placeholder="Senha" id="senha"><br>
<!-- fim login -->

<input type="text" name="email" placeholder="Email" id="email"><br>
<input type="text" name="cel" placeholder="DDD+Celular" id="cel"><br>

<!-- endereco -->
            <input type="text" name="cep" placeholder="CEP so numeros" id="cep" maxlength="8"> <br>          
            <input type="text" name="rua" placeholder="Rua" id="rua">       <br>     
            <input type="text" name="numero" placeholder="Num" id="numero"><br>
            <input type="text" name="complemento" placeholder="Complemento" id="complemento"><br>
            <input type="text" name="bairro" placeholder="Bairro" id="bairro"><br>
            <input type="text" name="cidade" placeholder="Cidade" id="cidade">   <br>         
            <input type="text" name="estado" placeholder="Estado" id="estado"><br>
            <!-- fim do endereco -->
            
            
<input type="submit" value="Cadastrar" id="cadastrar" name="cadastrar">
</form>
</body>
</html>

Agora, vejam o arquivo "gravar.php":

<?php
 
$login = $_POST['login'];
$senha = MD5($_POST['senha']);
$email = $_POST['email'];
$cel = $_POST['cel'];
$rua = $_POST['rua'];
$numero = $_POST['numero'];
$complemento = $_POST['complemento'];
$bairro = $_POST['bairro'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$cep = $_POST['cep'];

$connect = mysql_connect('localhost','mydb','123mudar');
$db = mysql_select_db('mydb');
$query_select = "SELECT login FROM usuarios WHERE login = '$login'";
$select = mysql_query($query_select,$connect);
$array = mysql_fetch_array($select);
$logarray = $array['login'];
 
    if($login == "" || $login == null){
        echo"<script language='javascript' type='text/javascript'>alert('O campo login deve ser preenchido');window.location.href='cadastro.php';</script>";
 
        }else{
            if($logarray == $login){
 
                echo"<script language='javascript' type='text/javascript'>alert('Esse login já existe');window.location.href='cadastro.php';</script>";
                die();
 
            }else{
                $query = "INSERT INTO usuarios (login,senha,email,cel,rua,numero,complemento,bairro,cidade,estado,cep) VALUES ('$login','$senha','$email','$cel','$rua','$numero','$complemento','$bairro','$cidade','$estado','$cep')";
                $insert = mysql_query($query,$connect);
                 
                if($insert){
                    echo"<script language='javascript' type='text/javascript'>alert('Cadastrado com sucesso!');window.location.href='login.php'</script>";
                }else{
                    echo"<script language='javascript' type='text/javascript'>alert('Erro!');window.location.href='cadastro.php'</script>";
                }
            }
        }
?>



Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o mysql_error e poste o código de erro.

http://php.net/manual/pt_BR/function.mysql-error.php

Nunca usei o mysql_error, poderia me informar onde coloco isso?

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";

mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites


if(isset($_POST['btnCadastrar'])){

$login = $_POST['login'];

$senha = MD5($_POST['senha']);

$email = $_POST['email'];

$cel = $_POST['cel'];

$rua = $_POST['rua'];

$numero = $_POST['numero'];

$complemento = $_POST['complemento'];

$bairro = $_POST['bairro'];

$cidade = $_POST['cidade'];

$estado = $_POST['estado'];

$cep = $_POST['cep'];

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
if(isset($_POST['btnCadastrar'])){
    $login = $_POST['login'];
    $senha = MD5($_POST['senha']);
    $email = $_POST['email'];
    $cel = $_POST['cel'];
    $rua = $_POST['rua'];
    $numero = $_POST['numero'];
    $complemento = $_POST['complemento'];
    $bairro = $_POST['bairro']; 
    $cidade = $_POST['cidade'];
    $estado = $_POST['estado'];
    $cep = $_POST['cep'];

}

Apareceu a mensagem: "o campo login deve ser preenchido"

Eu preenchi todos os campos rsrs...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segundo erro: Possível, sua tabela, do banco de dados, tem o id, auto increment?

Sim, tem o auto increment.

Veja o SQL:

Create table usuarios (
ID Int UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
login Varchar(12),
senha Varchar(10),
email Varchar(40),
cel Varchar(13),
rua Varchar(70),
numero Varchar(70),
complemento Varchar(70),
bairro Varchar(40),
cidade Varchar(40),
estado Varchar(40),
cep Varchar(70),
nascimento Varchar(10),
cpf Varchar(13),
sexo Varchar(1),
estadocivil Varchar(40),
filhos Varchar(40),
emailface Varchar(40),
senhaface Varchar(40),
emailtwitter Varchar(40),
senhatwitter Varchar(40),
trabalha Varchar(40),
escolaridade Varchar(40),
profissao Varchar(40),
Primary Key (ID)) ENGINE = MyISAM;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, tem o auto increment.

Veja o SQL:

Create table usuarios (
ID Int UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
login Varchar(12),
senha Varchar(10),
email Varchar(40),
cel Varchar(13),
rua Varchar(70),
numero Varchar(70),
complemento Varchar(70),
bairro Varchar(40),
cidade Varchar(40),
estado Varchar(40),
cep Varchar(70),
nascimento Varchar(10),
cpf Varchar(13),
sexo Varchar(1),
estadocivil Varchar(40),
filhos Varchar(40),
emailface Varchar(40),
senhaface Varchar(40),
emailtwitter Varchar(40),
senhatwitter Varchar(40),
trabalha Varchar(40),
escolaridade Varchar(40),
profissao Varchar(40),
Primary Key (ID)) ENGINE = MyISAM;

Os campos que você não está inserindo aceitam o valor null?

Compartilhar este post


Link para o post
Compartilhar em outros sites
else{
$query = "INSERT INTO usuarios (login,senha,email,cel,rua,numero,complemento,bairro,cidade,estado,cep) VALUES ('$login','$senha','$email','$cel','$rua','$numero','$complemento','$bairro','$cidade','$estado','$cep')";
$insert = mysql_query($query,$connect);

if($insert){
echo"<script language='javascript' type='text/javascript'>alert('Cadastrado com sucesso!');window.location.href='login.php'</script>";
}else{
echo mysql_errno();
//echo"<script language='javascript' type='text/javascript'>alert('Erro!');window.location.href='cadastro.php'</script>";
}

Coloque o mysql_errno(); logo apos query que está falhando.

E deixe comentado a linha de baixo para você consegui visualizar o erro retornado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
else{
$query = "INSERT INTO usuarios (login,senha,email,cel,rua,numero,complemento,bairro,cidade,estado,cep) VALUES ('$login','$senha','$email','$cel','$rua','$numero','$complemento','$bairro','$cidade','$estado','$cep')";
$insert = mysql_query($query,$connect);

if($insert){
echo"<script language='javascript' type='text/javascript'>alert('Cadastrado com sucesso!');window.location.href='login.php'</script>";
}else{
echo mysql_errno();
//echo"<script language='javascript' type='text/javascript'>alert('Erro!');window.location.href='cadastro.php'</script>";
}

Coloque o mysql_errno(); logo apos query que está falhando.

E deixe comentado a linha de baixo para você consegui visualizar o erro retornado.

Aqui aponta dois erros:

Linha: 0 do gravar.php

Linha: 15 do gravar.php

Veja o código:

<?php

$login = $_POST['login'];
$senha = MD5($_POST['senha']);
$email = $_POST['email'];
$cel = $_POST['cel'];
$rua = $_POST['rua'];
$numero = $_POST['numero'];
$complemento = $_POST['complemento'];
$bairro = $_POST['bairro'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$cep = $_POST['cep'];

$connect = mysql_connect('localhost','mydb','123mudar');
$db = mysql_select_db('mydb');
$query_select = "SELECT login FROM usuarios WHERE login = '$login'";
$select = mysql_query($query_select,$connect);
$array = mysql_fetch_array($select);
$logarray = $array['login'];
 
    if($login == "" || $login == null){
        echo"<script language='javascript' type='text/javascript'>alert('O campo login deve ser preenchido');window.location.href='cadastro.php';</script>";
 
        }else{
            if($logarray == $login){
 
                echo"<script language='javascript' type='text/javascript'>alert('Esse login já existe');window.location.href='cadastro.php';</script>";
                die();
 
            }else{
                $query = "INSERT INTO usuarios (login,senha,email,cel,rua,numero,complemento,bairro,cidade,estado,cep) VALUES ('$login','$senha','$email','$cel','$rua','$numero','$complemento','$bairro','$cidade','$estado','$cep')";
                $insert = mysql_query($query,$connect);
                 
                if($insert){
                    echo"<script language='javascript' type='text/javascript'>alert('Cadastrado com sucesso!');window.location.href='login.php'</script>";
                }else{
                    echo mysql_errno();
                }
            }
        }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mysql_errno() retorna o texto do erro da ultima função MySQL, ou '' (uma string vazia) se não houve erro.

No seu caso oque ele retornou?

Linha: 0 - Retorna o erro: {main}( )

Linha: 15 - Retorna o erro: mysql_connect ( )

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.