Jump to content
adriano22

Não consigo inserir os dados no banco, não apresenta o erro em tela

Recommended Posts

<?php
 
require_once 'lib/Database/Connection.php';
require_once 'Crud.php';


 
class UsuarioModel extends Crud
{
protected $table = 'usuario';
private $nome;
private $arquivo;
private $formacao;
private $nivel;
private $email;
private $senha;
private $curso;
private $disciplina;
private $periodo;
 
public function setNome($nome)
{
$this->nome = $nome;
}
public function setArquivo()
{
$this->arquivo = $arquivo;
}
public function setFormacao($formacao)
{
$this->formacao = $formacao;
}
public function setNivel($nivel)
{
$this->nivel = $nivel;
}
public function setEmail($email)
{
$this->email = $email;
}
public function setSenha($senha)
{
$this->senha = $senha ;
}
public function setCurso($curso)
{
$this->curso = $curso;
}
public function setDisciplina($disciplina)
{
$this->disciplina = $disciplina;
}
public function setPeriodo($periodo)
{
$this->periodo = $periodo;
}
 
public function insert()
{
$sql = "INSERT INTO $this->table (nome, arquivo, formacao, nivel, email, senha, curso, disciplina, periodo) VALUES (:nome, :arquivo, :formacao, :nivel, :email, :senha, :curso, :disciplina, :periodo)";
$stmt = Connection::prepare($sql);
$stmt->bindParam(':nome', $this->nome);
$stmt->bindParam(':arquivo', $this->arquivo);
$stmt->bindParam(':formacao',$this->formacao );
$stmt->bindParam(':nivel', $this->nivel);
$stmt->bindParam(':email', $this->email);
$stmt->bindParam(':senha', $this->senha);
$stmt->bindParam(':curso', $this->curso);
$stmt->bindParam(':disciplina',$this->disciplina);
$stmt->bindParam(':periodo', $this->periodo);
return $stmt->execute();
}
 
public function update($id)
{
$sql = "UPDATE $this->table SET nome = :nome, arquivo = :arquivo, formacao = :formacao, nivel = :nivel, email = :email, senha = :senha, curso = :curso, disciplina = :disciplina, periodo = :periodo WHERE id = :id";
$stmt = Connection::prepare($sql);
$stmt->bindParam(':nome', $this->nome);
$stmt->bindParam(':arquivo', $this->arquivo);
$stmt->bindParam(':formacao',$this->formacao );
$stmt->bindParam(':nivel', $this->nivel);
$stmt->bindParam(':email', $this->email);
$stmt->bindParam(':senha', $this->senha);
$stmt->bindParam(':curso', $this->curso);
$stmt->bindParam(':disciplina',$this->disciplina);
$stmt->bindParam(':periodo', $this->periodo);
$stmt->bindParam(':id', $id);
return $stmt->execute();
 
}
 

Share this post


Link to post
Share on other sites

Olá!. Ao invés de você usar bindParam use o bindValue!

Eu também estava tendo este erro e para mim funcionou, eu tinha ficado quebrando a cabeça por mais de um dia com isso também!

E após eu fazer essa pequena alteração funcionou perfeitamente sendo que eu usava também o bindParam e funcionava tranquilamente.

 

Espero ter ajudado.

Atenciosamente,

~Ronaldo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Mucio Willamys
      olá, gostaria da ajuda de vcs :
      este código traz as informações do banco de dados e as coloca dentro de um select html
      é parte de um projeto de um sistema de uma clínica médica, onde ao cadastrar os médicos posso escolher a especialidade do mesmo.
      <select name="especialidade" required="">                 <option value="" >--Escolha uma especialidade--</option>          <?php              $result_especialidade = "select * from especialidade";              $result_especialidade = mysqli_query($bd, $result_especialidade);              while ($row_especialidade = mysqli_fetch_assoc($result_especialidade)){ ?>                    <option value="<?php echo $row_especialidade['id']; ?>"><?php echo  $row_especialidade['nome']; ?> </option> public function editar($id){ include "Bd.class.php"; $nome = $this->nome; $cpf = $this->cpf; $crm = $this->crm; $especialidade = $this->especialidade; $query = "update medico set nome = '$nome', cpf = '$cpf', crm = '$crm', especialidade_id = '$especialidade' where id = $id"; $status = $bd->query($query); return $status; } Acima ^ está a função editar...
       
       
       
      abaixo está o form com as informações do médico.
      <form method="POST" action="../controller/Controller-medico.php?op=e"> <input type="hidden" name="id" size="5" value="<?php echo $id; ?>" > <div class="campo"> <label for="nome">Nome: </label> <input type="nome" name="nome" size="30" value="<?php echo $m->getNome() ?>"> </div> <div class="campo"> <label for="cpf">CPF: </label> <input type="text" name="cpf" size="30" value="<?php echo $m->getCpf() ?>"> </div> <div class="campo"> <label for="rg">CRM: </label> <input type="text" name="crm" size="30" value="<?php echo $m->getCrm() ?>"> </div> <div class="campo"> <label for="especialidade"> Especialidade: </label> </div> <div class="campo"> <input type="submit" value="Atualizar"> </div> </form> Gostaria de saber como faço pra setar um input ou um select no caso para a alteração do dado(especialidade)?
    • By Jefferson andre
      Saudações mestres,
       
      Preciso de ajuda em um pequeno programa que faz a contagem de acessos ao site, ele abre o banco de dados corretamente e a partir dai ja da problemas retornando a mensagem:
      Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in C:\xampp\htdocs\xcompbrasil\contador.php on line 10
      Warning: mysqli_query() expects parameter 1 to be mysqli, object given in C:\xampp\htdocs\xcompbrasil\contador.php on line 24
       
      A tabela contador possui o campo codigo INT 11 sem auto inclemento e sem indice, o conteudo foi colocado manual sendo o numero 213
       
      segue  o programa de conexao.php
      <?php ini_set('error_reporting', E_ALL); ini_set('log_errors' , TRUE); ini_set('html_errors' , TRUE); ini_set('display_errors' , TRUE); // production: FALSE, development: TRUE $host_local = "localhost"; $db_local = "baseprincipal"; $user_local = "root"; $pass_local = ""; $arquivo = new PDO("mysql:host=$host;dbname=$db", $user, $pass); try { } catch (PDOException $e) { echo "Error : " . $e->getMessage() . "<br/>"; die(); } ?> Segue o programa contador.php
      <?php // fazendo uma conexão com o banco de dados include_once 'conexao.php'; $arquivo->beginTransaction(); $consulta = $arquivo->query("SELECT * FROM contador"); $linha=mysqli_fetch_array($consulta); // igualar a array a uma variavel $cod = $linha["codigo"]+1; echo $cod; $arquivo->commit(); // lista a variavel echo "<font face='Arial'><span class='style1'>$cod</span></font>"; $sql = "UPDATE contador SET codigo=$cod"; if (mysqli_query($arquivo, $sql)) { // echo "Alteração efetuada com sucesso"; } else { // echo "Erro alterando o contador de visitas: " . mysqli_error($arquivo); } // fecha a conexao $arquivo = null; ?> Agradeço a atenção
    • By Filipe556
      alguém tem ideia de algum método de bloquear usuário por ip
    • By vini_seven
      Segue aqui meu código abaixo, o que ocorre é o seguinte, quando o usuário logar ele vai para a página de chat, quando ele vai para essa página é feito um update no banco de dados para status = 1 esse status igual a 1 é a minha condição para exibição na página usuários para então que o técnico da T.I escolha quem atender, todas que estão com status = 1 vão estar visíveis lá. Porém ao usuário clicar no botão sair na página de chat, quero que faça o update no banco de dados com status = 0 novamente, para então na página de usuários a ser atendido ele vai sair, vou colocar um refresh a cada 60s nessa página para ela atualizá-la. ----CÓDIGO DO TRECHO DA PÁGINA CHAT ONDE TEM O BOTÃO SAIR---
      <> <body> <div class="contact1"> <div class="fundo_chat"> <div class="janela_chat"> </div> <form action="chat.php" method="post" class="form-chat"> <input type="text" name="mensagem" id="mensagem" placeholder="Mensagem"> <tr> <button class="btn btn-primary" type="submit" id="botao-enviar">Enviar</button> <a class="btn btn-primary" href="logout.php" role="button" id="botao-sair">Sair</a> </form> </div> </div> </body> </html> <> --CÓDIGO ONDE É FEITO A VALIDAÇÃO DE LOGIN, REDIRECIONA PARA A PÁGINA DE USUÁRIOS QUEM É DA T.I, OS RESTANTES DE OUTROS SETORES VÃO DIRETO PARA A CHAT ONDE AGUARDA ATENDIMENTO E AO SER REDIRECIONADO MUDA STATUS PARA =1, ESTÁ MUDANDO PARA 1 PERFEITAMENTE.-- <> <?php session_start(); header('Content-Type: text/html; charset=utf-8'); include("conexao.php"); if(empty($_POST['nome']) || empty($_POST['senha'])){ header('location:index.html'); exit(); } $nome = mysqli_real_escape_string($conn, $_POST['nome']); $senha = mysqli_real_escape_string($conn, $_POST['senha']); $query = "select * from usuarios where nome = '$nome' and senha = '$senha'"; $setor = "SELECT setor FROM usuarios"; $result = mysqli_query($conn, $query); $row = mysqli_num_rows($result); if($row == 1){ $_SESSION['nome'] = $nome && $_SESSION['senha'] = $senha; while ($verifica_setor = mysqli_fetch_array($result)) { $setor = $verifica_setor['setor']; if ($setor == "Tecnologia da Informação") { header('location: usuarios.php'); }else{ mysqli_query($conn, "UPDATE usuarios set status = '1' WHERE nome = '$nome'"); header('location: chat.php'); } } } else { echo "<script>alert('USUÁRIO NÃO CADASTRADO OU DADOS INVÁLIDOS!');</script>"; echo "<script>window.location='index.html';</script>"; exit(); } ?> <> --AQUI É O MEU LOGOUT, ONDE EU INICIO A PARAMETRO SESSION PARA PEGAR O VALOR GLOBAL DELA QUE TINHA QUE SER O NOME PARA BUSCAR NA TABELA, FIZ UM OR DIE PARA TESTAR O QUERY E UM ECHO PARA VER O QUE ESTAVA SENDO EXIBIDO, E O QUE EXIBE NO ECHO É O VALOR = 1, POR ISSO A QUERY NAO FUNCIONA DO JEITO CERTO-- <> <?php include("conexao.php"); session_start(); echo $_SESSION['nome']; mysqli_query($conn, "UPDATE usuarios SET status = '0' WHERE nome = '$nome'") or die ("PARAMETROS NAO ALTERADO"); /* session_destroy(); header('location:index.html'); exit();*/ ?> <>  
    • By Sapinn
      Salve! Estou desenvolvendo um sistema de mensagens para o meu site no qual o ADM envia a mensagem para todos os usuarios ou ele pode digitar o email de um usuaio e será enviado apenas para este usuario especifico, além disso, o usuario recebe um tipo de notificação que informa que tem uma nova mensagem. O problema está sendo justamente nesta segunda parte não consigo pensar em uma logica para que a mensagem destinada a apenas um usuario so seja notificado ele.
      Alguém pode me ajudar
      vejam meu codigo
       
      <?php //conexao com o banco de dados include '../php/conexao.php'; //pega a tabela mensagem $query = mysql_query("select * from mensagem")or die(mysql_error //ver todos os dados que tem nela while($mensagem = mysql_fetch_assoc($query)){ //verifica na tabela ler se o codigo do aluno é igual ao codigo do usuario logado se tem alguma mensagem na tabela e se o email do destinatario é igual //ao do usuario logado $ver = mysql_query("SELECT * FROM ler where codigo_aluno='".$row['id']."' and codigo_mensagem= '".$mensagem['id']."' and destinatario ='".$row['email']."'")or die(mysql_error); } //se for igual ao 0 ou seja não tiver tudo ok significa que ele não leu a mensagem então mostra a notificação if(mysql_num_rows($ver) == 0){ ?> <span class="app-menu__label">Mensagens</span> <i><img src="../img/icone/menu/sino_mensagem.png" width="26px" height="26px"></i></a> </li> <?php //se não ele não mostro porque ela já foi lida }else{ ?> <span class="app-menu__label">Menssagem</span></a> </li> <?php } ?> Preciso de ajuda acho que o erro é na minha logica 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.