Ir ao conteúdo
  • Cadastre-se

Erro mysqli


Ir à solução Resolvido por DiF,

Posts recomendados

Bom pessoal, estou criando meu primeiro banco com php com parametros mysqli e sempre que concerto um erro, ocorre outro diferente, estou empacado e gostaria da ajuda de vocês. O erro em questão é:

 

Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in C:\Apache24\htdocs\prematricula.php on line 39

Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, null given in C:\Apache24\htdocs\prematricula.php on line 40

 

Se houverem outras coisas a serem corrigidas podem informar também.

 

Prematricula.html

<html><head><title>Cadastro pre matricula</title></head><body><form name="signup" method="post" action="prematricula.php"><h2> <center><font face="geosanslight">Cadastro de pré-Matricula </h2><h4> <center><font face="geosanslight">Preencha o formulário</h4>	<p><font face="geosanslight"> Nome: <input type=text name="nome" size="30" maxlenght="50"></p>	<p><font face="geosanslight"> Data de nascimento: <input type=text name="nascimento" size="5" maxlenght="10" </p>	<p><font face="geosanslight"> Sexo: <br>Masculino <input type=radio name="sexo" value="Masculino" checked>					    Feminino<input type=radio name="sexo"  value="Feminino"</p>	<p><font face="geosanslight"> Endereço: <input type=text name="endereco" size="20" maxlenght="200"</p>				      <p>Referencia: <textarea name="referencia" rows="2" cols="40"></textarea></p>	<p><font face="geosanslight"> RG: <input type=text name="rg" size="10" maxlenght="20"</p>		<p><font face="geosanslight"> Informe a série a ser mátriculado: <select name="serie"> </p>		<option> 1 Ano		<option> 2 Ano		<option> 3 Ano		<option> 4 Ano		</select>	<p><font face="geosanslight"> <input type=submit name="enviar" value="Enviar">	<font face="geosanslight"> <input type=reset value="Limpar"></form></body></html>	

Prematricula.php

<html><head><title>teste</title></head><body><?php $db = "pre_matricula";$dblocal = "localhost";$dbuser = "root";$dbpass = "7536231074";$conexao =  mysqli_connect($dblocal,$dbuser, $dbpass, $db);if (mysqli_connect_errno()) {    die("Falha na conexão com o servidor MySQL! ".mysql_connect_error());    exit();}?><?php$_SESSION["nome"] =$nome =$_POST['nome'];$_SESSION["nascimento"]= $nascimento=$_POST['nascimento'];$_SESSION["sexo"]= $sexo=$_POST['sexo'];$_SESSION["endereco"]= $endereco=$_POST['endereco'];$_SESSION["referencia"]= $referencia=$_POST['referencia'];$_SESSION["rg"]= $rg=$_POST['rg'];$_SESSION["serie"]= $serie=$_POST['serie'];?><?php$sql = "INSERT INTO 'aluno' ( nome, nascimento, sexo, endereco, referencia, rg, serie) VALUES (?,?,?,?,?,?,?)";$stmt = $conexao->prepare($sql);$stmt = mysqli_stmt_bind_param($stmt, 'sssssss', $_SESSION["nome"],$_SESSION["nascimento"],                           $_SESSION["sexo"],$_SESSION["endereco"],			   $_SESSION["referencia"],$_SESSION["rg"],			   $_SESSION["serie"]);if (mysqli_stmt_execute($stmt));{echo "Seu cadastro foi realizado com sucesso!Agradecemos a atencao.";}        ?>  </body></html>
Link para o comentário
Compartilhar em outros sites

  • Moderador
  • Solução

@Magno Guimarães

 

Inicialmente eu vejo ali vários erros.

Começando com as múltiplas chamadas da tag php e a chamada da estrutura html no arquivo que recebe os dados do formulário (prematricula.php)

 

2) colocando na sessão o que não precisa.

3) como estas fazendo uma conexão de modo procedural, não deve usar as funções prepare() e mysqli_stmt_bind_param().

 

é por isso que está dando problemas. faça dessa forma que vai funcionar:

<?php $db = "pre_matricula";$dblocal = "localhost";$dbuser = "root";$dbpass = "7536231074";$conexao =  mysqli_connect($dblocal,$dbuser, $dbpass, $db);$nome       = $_POST['nome'];$nascimento = $_POST['nascimento'];$sexo       = $_POST['sexo'];$endereco   = $_POST['endereco'];$referencia = $_POST['referencia'];$rg         = $_POST['rg'];$serie      = $_POST['serie'];$sql = mysqli_query($conexao, "INSERT INTO aluno(nome, nascimento, sexo, endereco, referencia, rg, serie)                                VALUES ('$nome','$nascimento','$sexo','$endereco','$referencia','$rg','$serie'))";if ($sql):   echo "Seu cadastro foi realizado com sucesso!Agradecemos a atencao.";endif;        ?>  

Pode ser que eu tenha errado algo, fiz de cabeça.. se tiver algo errado só pode ser erro de digitação.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...