Conecta ao BD, não dá erro, mas não grava
Olá, amigos, meu código conecta normalmente ao BD, faz tudo certinho, não retorna erro, mas não grava. O que pode ser?
Página do formulário e do php:
E meu arquivo de conexão:
Página do formulário e do php:
<?php include_once 'connect.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content-"width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Cadastro de Usuário</title> <style> body{font-family: Arial, Helvetica, sans-serif} .content{display:flex;justify-content: center} .contato{width:100%; max-width: 500px;} .form{display: flex; flex-direction: column} .field{padding:10px; margin-bottom:15px; border:1px solid #DDD; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px} .field2{padding:10px; margin-bottom:15px; border:1px solid #ADD8E6; background-color:#ADD8E6; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px} .field2:hover{padding:10px; margin-bottom:15px; border:1px solid #87CEFA; background-color:#87CEFA; border-radius: 5px; font-family: Arial, Helvetica, sans-serif; font-size: 16px; font-weight:bold;} </style> <script> function confereSenha(){ const senha = document.querySelector('input[name=senha]'); const confirma_senha = document.querySelector('input[name=confirma_senha'); if (confirma_senha.value === senha.value) { confirma_senha.setCustomValidity(''); } else { confirma_senha.setCustomValidity('As senhas digitadas não conferem! Elas precisam ser iguais.'); } } </script> </head> <body> <section class="content"> <div class="contato"> <h2>Cadastro</h2> Por favor, preencha todos os dados para criar um novo usuário.<br><br> <?php $dados = filter_input_array(INPUT_POST, FILTER_DEFAULT); if (!empty($dados['CadUsuario'])) { var_dump($dados); $query_usuario = "INSERT INTO usuario (nome, email, senha, situacoe_id, niveis_acesso_id, created, modified) VALUES ('" . $dados['nome'] . "', '" . $dados['email'] . "', '" . $dados['senha'] . "', '" . $dados['situacoe_id'] . "', '" . $dados['niveis_acesso_id'] . "', '" . $dados['created'] . "', '" . $dados['modified'] . "') "; $cad_usuario = $conn->prepare($query_usuario); $cad_usuario->execute(); } ?> <form name="cad_usu" class="form" method="POST" action=""> <input class="field" name="nome" placeholder="Nome" required> <input class="field" type="email" name="email" placeholder="E-mail" required> <input class="field" type="password" name="senha" placeholder="Senha" required onchange='confereSenha();'> <input class="field" type="password" name="confirma_senha" placeholder="Confirmar Senha" required onchange='confereSenha();'> <input type="hidden" name="situacoe_id" value="1"> <input type="hidden" name="niveis_acesso_id" value="1"> <input type="hidden" name="created" value='<?php echo date("Y-m-d H:i:s"); ?>'> <input type="hidden" name="modified" value='<?php echo date("Y-m-d H:i:s"); ?>'> <input class="field2" type="submit" name="CadUsuario" value"Cadastrar Usuário"> <input class="field2" type="reset" value"Limpar Formulário"> </form> </div> </section> </div> </body> </html>
E meu arquivo de conexão:
<?php $host = "localhost"; $user = "usuario"; $pass = "*****"; $dbname = "banco"; $conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass); ?>
Edilson Santiago
Curtidas 0
Respostas
Fernando C
31/01/2023
sua conexão está errada; troque essa linha:
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);
por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);
veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);
por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);
veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/
GOSTEI 0
Edilson Santiago
31/01/2023
sua conexão está errada; troque essa linha:
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);
por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);
veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);
por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);
veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/
Não resolveu, amigo. Fiz como sugeriu, depois tentei uma nova abordagem, com o código abaixo, mas o problema continua.
<?php $username = "meu usuario"; $password = "minha senha"; try { $conn = new PDO('mysql:host=localhost;dbname=MeuBanco', $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?>
GOSTEI 0
Edilson Santiago
31/01/2023
sua conexão está errada; troque essa linha:
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);
por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);
veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/
$conn = new PDO ("mysql:host=$host;dbname=".$banco,$user,$pass);
por essa:
$conn = new PDO ("mysql:host=$host;dbname=$dbname",$user,$pass);
veja aqui como exibir mensagens de erro:
https://forum.imasters.com.br/topic/542539-aten%C3%A7%C3%A3o-orienta%C3%A7%C3%B5es-e-regras-do-f%C3%B3rum-de-php/
Não resolveu, amigo. Fiz como sugeriu, depois tentei uma nova abordagem, com o código abaixo, mas o problema continua.
<?php $username = "meu usuario"; $password = "minha senha"; try { $conn = new PDO('mysql:host=localhost;dbname=MeuBanco', $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?>
Consegui achar o erro. Erro de digitação. Estava $cad_ususario, mas deveria ser $cad_usuario.
O mais fácil é sempre o mais difícil.
Obrigado!
GOSTEI 0