Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luan00

Dados não são inseridos no banco de dados com MySQLi

Recommended Posts

Os dados não estão sendo inseridos no banco de dados com MySQLi. Eu havia feito o mesmo sistema simples com MySQL e funcionou normalmente, onde estou errando com o MySQLi? Nenhuma mensagem de erro é informada.

Há alguma forma de testar se o mysqli está funcionando? No phpinfo() esle está ativado..

 

dados.php

<?php

$nome 				= $_POST["nome"];
$data_de_nascimento             = $_POST["data_de_nascimento"];
$email 				= $_POST["email"];
$telefone 			= $_POST["telefone"];

$conexao = new mysqli_connect('localhost','root','senha','cadastros');

if (mysqli_connect_errno()) {
   die("Falha na conexão! ".mysqli_connect_error());
   exit();
}

$sql 				= "INSERT INTO cadastros(nome,data_de_nascimento,email,telefone) VALUES(?,?,?,?)";
$stmt 				= $conexao->prepare($sql);
$stmt 				= mysqli_bind_param("ssss", $nome,$data_de_nascimento,$email,$telefone);
$stmt->mysqli_execute();

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa funções que você usa esta obsoletas repara :

mysqli_execute

mysqli_bind_param

Eu troquei pelas funções atuais abaixo a partir do php 5.5 elas estão obsoletas


mysqli_stmt_bind_param
mysqli_stmt_execute

Dá uma lida na documentação sobre elas:

 

http://php.net/manual/pt_BR/function.mysqli-execute.php

 

http://php.net/manual/pt_BR/function.mysqli-bind-param.php

 

 

 

Mas montei uma rapidinho aqui e testei localmente e funcionou perfeitamente e fiz um pequeno form para teste para ver se estava inserindo no banco e inseriu perfeitamente

 

segue abaixo:

 

 

FORM:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>

<form action="teste_config.php" method="post" enctype="multipart/form-data">
<input type="text" name="nome" id="nome" />
<input type="text" name="data_de_nascimento" id="data_de_nascimento" />
<input type="text" name="email" id="email" />
<input type="text" name="telefone" id="telefone" />
<input type="submit" name="enviar" value="enviar" />
</form>
</body>
</html>

O SCRIPT EM PHP

<?php
$MySQL = array(
'servidor' => 'localhost',    // Endereço do servidor
'usuario' => 'root',        // Usuário
'senha' => '',                // Senha
'banco' => 'jc'        // Nome do banco de dados
);
$MySQLi = new MySQLi($MySQL['servidor'], $MySQL['usuario'], $MySQL['senha'], $MySQL['banco']);
// Verifica se ocorreu um erro e exibe a mensagem de erro
if(mysqli_connect_errno())
trigger_error(mysqli_connect_error(), E_USER_ERROR);
?>

<?php    
$nome                 = $_POST["nome"];
$data_de_nascimento = $_POST["data_de_nascimento"];
$email                 = $_POST["email"];
$telefone             = $_POST["telefone"];




if(empty($nome)){
echo "<script>alert('Por Favor ! Preencha o nome')</script>";
echo "<script language='javascript'>history.back()</script>";
}elseif(empty($data_de_nascimento)){
echo "<script>alert('Por Favor ! Preencha a data de nascimento')</script>";
echo "<script language='javascript'>history.back()</script>";
}elseif(empty($email)){
echo "<script>alert('Por Favor ! Preencha o Email')</script>";
echo "<script language='javascript'>history.back()</script>";
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "<script>alert('Email Inválido Tente Novamente')</script>";
echo "<script language='javascript'>history.back()</script>";
}elseif(empty($telefone)){
echo "<script>alert('Por Favor ! Preencha um número de Telefone')</script>";
echo "<script language='javascript'>history.back()</script>";
}else{


$sql= ("INSERT INTO cadastros (nome,data_de_nascimento,email,telefone)
VALUES (?, ?, ?, ?)")or print(mysqli_error());
    
//Prepare the query
$envia = $MySQLi->prepare($sql);
    
//Bind the parameters
mysqli_stmt_bind_param($envia,'ssss', $nome,$data_de_nascimento,$email,$telefone);
//Execute the query
mysqli_stmt_execute($envia);
//Close the statement    
mysqli_stmt_close($envia);
 
    


if(!empty($sql)==1){


echo "<script>alert('**  Mensagem enviada com Sucesso: **');</script>";
echo "<script language='javascript'>history.back()</script>";

}else{

echo "<div align='center'><br /><br /><br /><br /><script>alert('HOUVE UM ERRO COM O SEU BANCO DE DADOS A MENSAGEM NÃO FOI ENVIADA')</script></div>";
echo "<script language='javascript'>history.back()</script>";
}


return;


}
?>




Testa aí man, aqui funcionou 100% no meu WAMP..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa funções que você usa esta obsoletas repara :

mysqli_execute

mysqli_bind_param

Eu troquei pelas funções atuais abaixo a partir do php 5.5 elas estão obsoletas


mysqli_stmt_bind_param
mysqli_stmt_execute

Dá uma lida na documentação sobre elas:

 

http://php.net/manual/pt_BR/function.mysqli-execute.php

 

http://php.net/manual/pt_BR/function.mysqli-bind-param.php

 

 

 

Mas montei uma rapidinho aqui e testei localmente e funcionou perfeitamente e fiz um pequeno form para teste para ver se estava inserindo no banco e inseriu perfeitamente

 

segue abaixo:

 

 

FORM:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>

<form action="teste_config.php" method="post" enctype="multipart/form-data">
<input type="text" name="nome" id="nome" />
<input type="text" name="data_de_nascimento" id="data_de_nascimento" />
<input type="text" name="email" id="email" />
<input type="text" name="telefone" id="telefone" />
<input type="submit" name="enviar" value="enviar" />
</form>
</body>
</html>

O SCRIPT EM PHP

<?php
$MySQL = array(
'servidor' => 'localhost',    // Endereço do servidor
'usuario' => 'root',        // Usuário
'senha' => '',                // Senha
'banco' => 'jc'        // Nome do banco de dados
);
$MySQLi = new MySQLi($MySQL['servidor'], $MySQL['usuario'], $MySQL['senha'], $MySQL['banco']);
// Verifica se ocorreu um erro e exibe a mensagem de erro
if(mysqli_connect_errno())
trigger_error(mysqli_connect_error(), E_USER_ERROR);
?>

<?php    
$nome                 = $_POST["nome"];
$data_de_nascimento = $_POST["data_de_nascimento"];
$email                 = $_POST["email"];
$telefone             = $_POST["telefone"];




if(empty($nome)){
echo "<script>alert('Por Favor ! Preencha o nome')</script>";
echo "<script language='javascript'>history.back()</script>";
}elseif(empty($data_de_nascimento)){
echo "<script>alert('Por Favor ! Preencha a data de nascimento')</script>";
echo "<script language='javascript'>history.back()</script>";
}elseif(empty($email)){
echo "<script>alert('Por Favor ! Preencha o Email')</script>";
echo "<script language='javascript'>history.back()</script>";
}elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "<script>alert('Email Inválido Tente Novamente')</script>";
echo "<script language='javascript'>history.back()</script>";
}elseif(empty($telefone)){
echo "<script>alert('Por Favor ! Preencha um número de Telefone')</script>";
echo "<script language='javascript'>history.back()</script>";
}else{


$sql= ("INSERT INTO cadastros (nome,data_de_nascimento,email,telefone)
VALUES (?, ?, ?, ?)")or print(mysqli_error());
    
//Prepare the query
$envia = $MySQLi->prepare($sql);
    
//Bind the parameters
mysqli_stmt_bind_param($envia,'ssss', $nome,$data_de_nascimento,$email,$telefone);
//Execute the query
mysqli_stmt_execute($envia);
//Close the statement    
mysqli_stmt_close($envia);
 
    


if(!empty($sql)==1){


echo "<script>alert('**  Mensagem enviada com Sucesso: **');</script>";
echo "<script language='javascript'>history.back()</script>";

}else{

echo "<div align='center'><br /><br /><br /><br /><script>alert('HOUVE UM ERRO COM O SEU BANCO DE DADOS A MENSAGEM NÃO FOI ENVIADA')</script></div>";
echo "<script language='javascript'>history.back()</script>";
}


return;


}
?>




Testa aí man, aqui funcionou 100% no meu WAMP..

Vou testar agora mesmo!

 

@EDIT

Jeovane, vlwzão cara! Agora funcionou!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.