Problema ao inserir dados de formulário no MySQL
Bom dia, criei um formulário para cadastro e esse formulário deve enviar via POST sem sair da página e realizar o insert na minha tabela do banco de dados, porém ele entra toda vez no meu "else{echo "Erro, não possível inserir no banco de dados";}"
Realmente não consigo enxergar o motivo de não estar inserindo no banco de dados.
Código da página:
conecta.php
Realmente não consigo enxergar o motivo de não estar inserindo no banco de dados.
Código da página:
<form class="user-menu-form" action="<?php echo $_SERVER["PHP_SELF"];?>" method="POST"> <nav class="user-menu-form-nav"> <label class="menu-form-label">Nome:</label> <input class="user-menu-input" type="text" placeholder="Nome" required="required" name="nome_resp" autofocus> <br> <label class="menu-form-label">CPF ou CNPJ:</label> <input class="user-menu-input" type="text" placeholder="CPF ou CNPJ" required="required" name="cpfcnpj_resp"> <br> <label class="menu-form-label">CEP:</label> <input class="user-menu-input" type="text" placeholder="CEP" required="required" id="cep" name="cep_resp" max-length="8"> <br> <label class="menu-form-label">Endereço:</label> <input class="user-menu-input" type="text" placeholder="Endereço" id="rua" required="required" name="endereco_resp"> <br> <label class="menu-form-label">Complemento:</label> <input class="user-menu-input" type="text" placeholder="complemento" id="complemento" required="required" name="complemento_resp"> <br> <label class="menu-form-label">Bairro:</label> <input class="user-menu-input" type="text" placeholder="Bairro" id="bairro" required="required" name="bairro_resp"> <br> <label class="menu-form-label">Cidade:</label> <input class="user-menu-input" type="text" placeholder="Cidade" required="required" id="cidade" name="cidade_resp"> <br> <label class="menu-form-label">UF:</label> <input class="user-menu-input" type="text" placeholder="UF" required="required" name="uf_resp" id="uf"> <br> <label class="menu-form-label">País:</label> <input class="user-menu-input" type="text" placeholder="País" required="required" name="pais_resp"> <br> <label class="menu-form-label">E-mail:</label> <input class="user-menu-input" type="email" placeholder="Email" required="required" name="email_resp"> <br> <label class="menu-form-label">Telefone:</label> <input class="user-menu-input" type="text" placeholder="Telefone" required="required" name="fone_resp"> <br> <label class="menu-form-label">Celular:</label> <input class="user-menu-input" type="text" placeholder="Celular" required="required" name="cel_resp"> <br><label class="menu-form-label">Tutelado:</label> <input class="user-menu-input" type="text" placeholder="Responsável" required="required" name="responsavel_usuarios1"> <br> <br><label class="menu-form-label">Tutelado:</label> <input class="user-menu-input" type="text" placeholder="Responsável" name="responsavel_usuarios2"> <br> <br><label class="menu-form-label">Tutelado:</label> <input class="user-menu-input" type="text" placeholder="Responsável" name="responsavel_usuarios3"> <br> </nav> <br> <br> <button class="menu-form-btn" type="submit" method="POST"><img src="assets/imgs/check.png" width="12px;">Cadastrar</button> <button class="menu-form-btn"><img src="assets/imgs/clipboard.png" width="16px;"><a href="listagem.php">Listagem</a></button> <?php include 'conecta.php'; if($_SERVER['REQUEST_METHOD'] == 'POST'){ $cpfcnpj_resp = $_POST['cpfcnpj_resp']; $nome_resp = $_POST['nome_resp']; $endereco_resp = $_POST['endereco_resp']; $complemento_resp = $_POST['complemento_resp']; $bairro_resp = $_POST['bairro_resp']; $cep_resp = $_POST['cep_resp']; $cidade_resp = $_POST['cidade_resp']; $uf_resp = $_POST['uf_resp']; $pais_resp = $_POST['pais_resp']; $email_resp = $_POST['email_resp']; $fone_resp = $_POST['fone_resp']; $cel_resp = $_POST['cel_resp']; $responsavel_usuarios1 = $_POST['responsavel_usuarios1']; $responsavel_usuarios2 = $_POST['responsavel_usuarios2']; $responsavel_usuarios3 = $_POST['responsavel_usuarios3']; $sql = "INSERT INTO responsavel (cpf_cnpj_resp,nome_resp,endereco_resp,complemento_resp,bairro_resp,cep_resp,cidade_resp,uf_resp,pais_resp,email_resp,fone_resp,cel_resp,hospede_1_resp_cpf,hospede_2_resp_cpf,hospede_3_resp_cpf) VALUES ('$cpfcnpj_resp','$nome_resp','$endereco_resp','$complemento_resp','$bairro_resp','$cep_resp','$cidade_resp','$uf_resp','$pais_resp','$email_resp','$fone_resp','$cel_resp','$responsavel_usuarios1','$responsavel_usuarios2','$responsavel_usuarios3')"; mysqli_query($conecta,$sql); //Realiza a consulta if(mysqli_affected_rows($conecta) == 1){ echo "<h4> gravado com sucesso</h4>"; sleep(2); } else { echo "Erro, não possível inserir no banco de dados"; } mysqli_close($conecta); //fecha conexão com banco de dados } ?> </form>
conecta.php
<?php $conecta = mysqli_connect('localhost', 'root', '') or trigger_error(mysql_error()); // Tenta se conectar a um banco de dados MySQL mysqli_select_db($conecta, 'car0000001') or trigger_error(mysqli_error()); mysqli_set_charset($conecta, 'utf8'); ?>
João Vitor
Curtidas 0
Melhor post
Fernando C
03/09/2019
troque essa linha:
mysqli_query($conecta,$sql)
por essa:
mysqli_query($conecta,$sql) or die(mysqli_error());
e será exibido algum eventual erro na SQL, pois o restante parece estar ok. boa sorte e disponha
mysqli_query($conecta,$sql)
por essa:
mysqli_query($conecta,$sql) or die(mysqli_error());
e será exibido algum eventual erro na SQL, pois o restante parece estar ok. boa sorte e disponha
GOSTEI 1
Mais Respostas
Samuel Castro
03/09/2019
A minha dúvida é semelhante..
Criei meu código bem básico pra inserir dados no Mysql, meu código executa e exibe no navegador "Inserido "Inserido com sucesso!", mas quando vou la no banco de dados, não tem nada lá (
Estou usando o xampp, Mysql.
Notei que esse problema aconteceu depois que eu instalei o SQL pra fazer um teste, havia dado problema e um amigo meu que resolveu pra mim poder reutilizar o Mysql (isso foi a tempos atrás), mas agora deu o mesmo problema só que no pc do meu irmão e não sei o que fazer (as vezes faço aulas no pc dele também).
Alguém pode me ajudar?
Criei meu código bem básico pra inserir dados no Mysql, meu código executa e exibe no navegador "Inserido "Inserido com sucesso!", mas quando vou la no banco de dados, não tem nada lá (
MySQL não retornou nenhum registo
).Estou usando o xampp, Mysql.
<?php $conn = new PDO("mysql:host=localhost; dbname=dbphp7", "root", ""); $stmt = $conn->prepare("INSERT INTO tb_usuarios (deslogin, dessenha) VALUES(:LOGIN, :PASSWORD)"); $login = "Maria"; $login = "sacf2311"; $stmt->bindParam(":LOGIN", $login); $stmt->bindParam(":PASSWORD", $password); $stmt->execute(); echo "Inserido com sucesso!"; ?>
Notei que esse problema aconteceu depois que eu instalei o SQL pra fazer um teste, havia dado problema e um amigo meu que resolveu pra mim poder reutilizar o Mysql (isso foi a tempos atrás), mas agora deu o mesmo problema só que no pc do meu irmão e não sei o que fazer (as vezes faço aulas no pc dele também).
Alguém pode me ajudar?
GOSTEI 0
Samuel Castro
03/09/2019
Galera, boa noite!
Então...
O código de cima como eu havia falado não estava inserindo no banco mas ai eu fiz de uma outra maneira (uma aula de outro portal) e consegui inserir:
Então...
O código de cima como eu havia falado não estava inserindo no banco mas ai eu fiz de uma outra maneira (uma aula de outro portal) e consegui inserir:
<?php $dsn = "mysql:dbname=dbphp7;host=127.0.0.1"; $dbuser = "root"; $dbpass = ""; try { $pdo = new PDO($dsn,$dbuser,$dbpass); $nome = "João"; $senha = md5("b1b2c3"); $sql = "INSERT INTO tb_usuarios SET deslogin = '$nome', dessenha = '$senha'"; $sql = $pdo->query($sql); echo "Usuário inserido com sucesso!"; } catch(PDOException $e){ echo "Erro: ".$e->getMessage(); } ?>
GOSTEI 1
Leonardo Marques
03/09/2019
<input class="user-menu-input" type="text" placeholder="CPF ou CNPJ" required="required" name="cpfcnpj_resp">
$cpfcnpj_resp = $_POST['cpfcnpj_resp'];
$sql = "INSERT INTO responsavel (cpf_cnpj_resp
Bom dia, no insert esse _ no cpf_cnpj ???
$cpfcnpj_resp = $_POST['cpfcnpj_resp'];
$sql = "INSERT INTO responsavel (cpf_cnpj_resp
Bom dia, no insert esse _ no cpf_cnpj ???
GOSTEI 0
Levi Lucena
03/09/2019
Estou com o mesmo 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 conexao.php
<?php
$servidor = "localhost";
$usuario = "root";
$senha = "";
$dbname = "celke";
// Criar a conexão
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
?>
//Criar a conexao
$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");
//}
?>
meu conexao.php
<?php
$servidor = "localhost";
$usuario = "root";
$senha = "";
$dbname = "celke";
// Criar a conexão
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
?>
//Criar a conexao
$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");
//}
?>
GOSTEI 0
Levi Lucena
03/09/2019
Estou com o mesmo 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 conexao.php
meu index.php
meu processa.php
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"); //} ?>
GOSTEI 0
Arthur Heinrich
03/09/2019
Bom dia, criei um formulário para cadastro e esse formulário deve enviar via POST sem sair da página e realizar o insert na minha tabela do banco de dados, porém ele entra toda vez no meu "else{echo "Erro, não possível inserir no banco de dados";}"
<?php $conecta = mysqli_connect('localhost', 'root', '') or trigger_error(mysql_error()); // Tenta se conectar a um banco de dados MySQL mysqli_select_db($conecta, 'car0000001') or trigger_error(mysqli_error()); mysqli_set_charset($conecta, 'utf8'); ?>
Ao conectar ao banco, você utilizou:
$conecta = mysqli_connect('localhost', 'root', '')
A função mysqli_connect possui um quarto parâmetro para indicar qual o database você pretende trabalhar.
$conecta = mysqli_connect('localhost', 'root', '', 'meudb')
Se você não especifica o banco, é possível que ao fazer o insert ele não reconheça a sua tabela e apresente erro ao inserir.
GOSTEI 0