Inserção de Dados PHP no PHPMyADMIN

18/08/2023

0

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
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

Levi Lucena

Responder

Posts

18/08/2023

Levi Lucena

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);

Responder

18/08/2023

Arthur Heinrich

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".

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;

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar