Problema ao inserir dados de formulário no MySQL

MySQL

PHP

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";}"

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

João Vitor

Curtidas 0

Melhor post

Fernando C

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

Mais Respostas

Samuel Castro

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

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:


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

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 ???
GOSTEI 0
Levi Lucena

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");
//}
?>
GOSTEI 0
Levi Lucena

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


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

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
POSTAR