Ir para conteúdo
Fórum Script Brasil
  • 0

erro na minha classe


garo horror

Pergunta

estou com um erro no meu código no netbeans no segundo prepare no salvar ele da erro   Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\projetox\classe_usuario.php on line 57 

aqui meu código

class usuario {
   private $id;
   private $nome;
   private $email;
   private $senha;
   private $pdo;
   
   public function __construct($i =  null) {
       if(!empty($i)){
           try {
           $this->pdo = new PDO("mysql:dbname=test;host=localhost","root","");
           } catch (PDOException $ex) {
               echo 'erro: '.$ex->getMessage();}
           $sql = "SELECT * FROM usuarios WHERE ID = ?";
           $sql = $this->pdo->prepare($sql);
           $sql->execute(array($i));
           
           if($sql->empty = TRUE){
               $data = $sql->fetch();
               $this->id = $data['id'];
               $this->nome = $data['nome'];
               $this->email = $data['email'];
               $this->senha = $data['senha'];
               
           }
           
           }
   }
   
   public function getId(){
       return $this->id;
   }
   public function setNome($n){
       $this->nome = $n;
   }
   public function getNome(){
       return $this->nome;
   }
      public function setEmail($e){
       $this->email = $e;
   }
   public function getEmail(){
       return $this->email;
   }
   public function setSenha($s){
       $this->senha = $s;
   }
   public function salvar(){
       if(!empty($this->id)){
           $sql = "UPDATE usuarios SET usuario = ?, email = ?, senha = ? WHERE ID = ?";
           $sql = $this->pdo->prepare($sql);
           $sql->execute(array($this->id, $this->nome, $this->email, $this->senha));
       }else{
           $sql = "INSERT INTO usuarios SET usuario = ?, email = ?, senha = ?";
           $sql = $this->pdo->prepare($sql);
           $sql->execute(array($this->nome, $this->email, $this->senha));
       }
   }
}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Não sei sobre o PHP7, portanto ainda utilizo as funções mysql_, mas acredito que o erro esteja aqui, já que o prepare é uma função pre-estabelecida pelo que li: 

  $sql = $this->pdo->prepare($sql);

Tente utilizar somente:   $sql = $this->prepare($sql); 

Lembrando que não utilizo PDO, mas talvez funcione.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...