Problem inserting data into mysql table [closed]

1

I'm having a problem inserting data into a table someone can show me the error.

<html>

<head></head>

<body>
  <div>
    <form method="POST" action="varcadastro.php">
      <p class="contact">
        <label for="name">Nome</label>
      </p>
      <input id="name" name="nome" placeholder="Primeiro e Ultimo nome" type="text">

      <p class="contact">
        <label for="datanasc">Data Nascimento</label>
      </p>
      <input id="email" name="datanasc" placeholder="22041996" type="date">
      <p class="contact">
        <label for="username">Usuario</label>
      </p>
      <input id="username" name="usuario" placeholder="usuario" type="text">
      <p class="contact">
        <label for="password">Senha</label>
      </p>
      <input type="password" id="senha" name="senha">
      <p class="contact">
        <label for="cpf">cpf</label>
      </p>
      <input id="cpf" name="cpf" type="cpf">
      <p class="contact">
        <label for="cidade">cidade</label>
      </p>
      <input id="cidade" name="cidade" type="cidade" <p class="contact">
      <label for="bairro">bairro</label>
      </p>
      <input id="bairro" name="bairro" type="bairro">

      <p class="contact">
        <label for="rua">rua</label>
      </p>
      <input id="rua" name="rua" type="rua">
      <p class="contact">
        <label for="numero">numero</label>
      </p>
      <input id="numero" name="numero" type="numero">
      <p class="contact">
        <label>Telefone Residencial</label>
      </p>
      <input name="telefone1" placeholder="phone number" type="text">
      <br>
      <p class="contact">
        <label>Telefone Celular</label>
      </p>
      <input id="phone" name="telefone2" placeholder="phone number" type="text">
      <br>
      <p class="contact">
        <label for="phone">Telefone Opcional</label>
      </p>
      <input id="phone" name="telefone3" placeholder="phone number" type="text">
      <br>
      <input name="submit" value="Cadastrar" type="submit">
    </form>
</body>

</html>

PHP:

<?php
    $nome= $_POST["nome"];
    $datanasc= $_POST["datanasc"];
    $rua= $_POST["rua"];
    $usuario= $_POST["usuario"];
    $senha= $_POST["senha"];
    $cpf= $_POST["cpf"];
    $numero= $_POST["numero"];
    $cidade= $_POST["cidade"];
    $telefone1= $_POST["telefone1"];
    $telefone2= $_POST["telefone2"];
    $telefone3= $_POST["telefone3"];
    $bairro= $_POST["bairro"];
    $conexao = @mysql_connect("localhost","root"); //localhost é onde esta o banco de dados.
if (!$conexao)
die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());
 //conectando com a tabela do banco de dados
$banco = mysql_select_db("biblioteca",$conexao); //nome da tabela que deseja que seja inserida os dados cadastrais
if (!$banco)
die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());
$query = "INSERT INTO 'manterusuario' ('nome', 'telefone1', 'telefone2', 'telefone3', 'cpf', 'datanasc', 'usuario', 'senha' , 'cidade' , 'rua' , 'bairro' , numero' ) VALUES ('$nome', '$telefone1', '$telefone2', '$telefone3', '$cpf', '$datanasc', '$usuario', '$senha' , '$cidade' , '$rua' , '$bairro' , $numero' )";
mysql_query($query,$conexao);
echo "Cadatro realizado com sucesso!Obrigado!";
?>

My table looks like this:

CREATE TABLE manterusuario (
  codigousuario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  manterbiblioteca_codigobiblioteca INTEGER UNSIGNED NOT NULL,
  nome VARCHAR(50) NOT NULL,
  telefone1 VARCHAR(50) NOT NULL,
  telefone2 VARCHAR(50) NOT NULL,
  telefone3 VARCHAR(50) NULL,
  cpf VARCHAR(50) NOT NULL,
  datanasc DATE NOT NULL,
  login VARCHAR(20) NOT NULL,
  senha VARCHAR(20) NOT NULL,
  cidade VARCHAR(50) NULL,
  rua VARCHAR(50) NULL,
  bairro VARCHAR(50) NULL,
  numero VARCHAR(10) NULL,
  PRIMARY KEY(codigousuario),
  INDEX manter_usuario_FKIndex1(manterbiblioteca_codigobiblioteca)
);
    
asked by anonymous 08.11.2015 / 22:28

1 answer

2

Do not use the functions mysql_* they are obsolete and have been removed from php7, do not use @ it hides the errors which makes it difficult to detect the problem.

If you are a legacy project, always add or die(mysql_error()) together with mysql_query() so you can know if the error is in the database or in the php code.

The problem with your insert is backtick ( '' ) are used only in the name of tables or columns and not in values. After values change the backticks with single quotation marks ( ' )

Wrong:

INSERT INTO 'manterusuario' ('nome', 'telefone1', 'telefone2', 'telefone3', 'cpf', 'datanasc', 'usuario', 'senha' , 'cidade' , 'rua' , 'bairro' , 'numero' )
 VALUES ('$nome', '$telefone1', '$telefone2', '$telefone3', '$cpf', 
'$datanasc', '$usuario', '$senha' , '$cidade' , '$rua' , '$bairro' , $numero' )

Right:

INSERT INTO 'manterusuario' ('nome', 'telefone1', 'telefone2', 'telefone3', 'cpf', 'datanasc', 'usuario', 'senha' , 'cidade' , 'rua' , 'bairro' , 'numero' ) 
VALUES ('$nome', '$telefone1', '$telefone2', '$telefone3', '$cpf', '$datanasc', '$usuario', '$senha' , '$cidade' , '$rua' , '$bairro' , '$numero' )

If you need to convert the date from d/m/Y to Y-m-d see this response

Recommended reading:

Why should not we use functions of type mysql_ *?

Why do you say that using @ atm to suppress errors is bad practice?

MySQL vs PDO - Which is the most recommended to use?

    
08.11.2015 / 22:46