Inserção de Dados PHP no PHPMyADMIN
Estou com um problema e não sei o que pode estar acontecendo. Na depuração aparece os campos em brancos como se não tivesse preenchido.
meu banco
meu conexao.php
meu index.php
meu processa.php
meu banco
CREATE TABLE `usuarios` ( `id` int(5) NOT NULL, `nome` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `created` datetime NOT NULL, `modified` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
meu conexao.php
<?php $servidor = "localhost"; $usuario = "root"; $senha = ""; $dbname = "celke"; // Criar a conexão $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); ?>
meu index.php
<?php session_start(); ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="utf-8"> <title>CRUD - Cadastrar</title> </head> <body> <h1>Cadastrar Usuário</h1> <?php if(isset($_SESSION[''''msg''''])){ echo $_SESSION[''''msg'''']; unset($_SESSION[''''msg'''']); } ?> <form action="processa.php" method="POST"> <label>Nome: </label> <input type="text" name="nome" placeholder="Digite o nome completo"><br><br> <label>E-mail: </label> <input type="email" name="email" placeholder="Digite o seu melhor e-mail"><br><br> <input type="submit" method="POST" value="Cadastrar"> </form> </body> </html>
meu processa.php
<?php session_start(); include_once("conexao.php"); $nome = filter_input(INPUT_POST, ''''nome'''', FILTER_SANITIZE_SPECIAL_CHARS); $email = filter_input(INPUT_POST, ''''email'''', FILTER_VALIDATE_EMAIL); echo "Nome: $nome <br>"; echo "E-mail: $email <br>"; //$result_usuario = "INSERT INTO usuarios (nome, email, created) VALUES (''''$nome'''', ''''$email'''', NOW())"; //$resultado_usuario = mysqli_query($conn, $result_usuario); //if(mysqli_insert_id($conn)){ // $_SESSION[''''msg''''] = "<p style=''''color:green;''''>Usuário cadastrado com sucesso</p>"; // header("Location: index.php"); //}else{ // $_SESSION[''''msg''''] = "<p style=''''color:red;''''>Usuário não foi cadastrado com sucesso</p>"; // header("Location: index.php"); //} ?>
Levi Lucena
Curtidas 0
Respostas
Levi Lucena
18/08/2023
não tem como editar a publicação, mas no processa.php utilizo aspas simples.
$nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
GOSTEI 0
Arthur Heinrich
18/08/2023
O insert na tabela "usuarios" não cita a coluna "id", que é not null. Logo, o banco barra o insert por violação da constraint de check "is not null".
Para que a coluna seja preenchida de forma automática, precisa ser especificado na criação da tabela, com a diretiva "AUTO_INCREMENT".
Para que a coluna seja preenchida de forma automática, precisa ser especificado na criação da tabela, com a diretiva "AUTO_INCREMENT".
CREATE TABLE `usuarios` ( `id` int(5) NOT NULL AUTO_INCREMENT, `nome` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `created` datetime NOT NULL, `modified` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
GOSTEI 0