Ir para conteúdo

POWERED BY:

Arquivado

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

vandergil

[Resolvido] Erro PDO

Recommended Posts

Srs.

Estou fazendo um sisteminha utilizando PDO, porém apareceu o seguinte erro:

Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\estudo_php\estudo_dao\AgendaDAO.class.php on line 22

 

Na linha 22 tem o seguinte:

$stmt = $this->conex->prepare("INSERT INTO agenda (id, nome, email, telefone) VALUES (?, ?, ?, ?)");

 

Alguém saberia o que pode ser isto ??

Obrigado !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fica dificil te responder com tão pouco codigo ai.

Esse erro geralmente aparece quando se tenta acessar um método de uma classe por uma variavel que não é um objeto dessa classe.

 

 

Mas aqui tem algumas coisas que podem ser pelo que eu vi.

"$this->" só pode ser usado dentro da classe.

 

E a linha 22 me parece com alguns erros.

$this->conex->prepare acessar variaveis de metodos internos de metodos não é possivel em PHP como em JS ou AS.

 

Oq eu to querendo dizer é que $objeto->metodo->metodo nao funciona ou qualquer variação disso.

 

Precisa ser $objeto->metodo([argumentos]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo encontrei o erro.

Seguinte criei uma classe PDOConnectionFactory, ela realiza a parte de conexão com o banco, dentro dessa classe tem o método getConnection() que me retorna o objeto PDO com a conexão que dei o nome de con ($this->con).

 

Criei a classe AgendaDAO estendendo a classe PDOConnectionFactory, e no construtor eu fiz o seguinte:

$this->conex = PDOConnectionFactory::getConnection();

Ou seja, atribui o objeto PDO a variavel local $this->conex.

 

Porém como tinha mencionado quando eu fazia por exemplo "$this->conex->query", ele não encontrava o método "query".

O erro era o seguinte, no método getConnection() da classe PDOConnectionFactory, eu esqueci de colocar o return $this->con;

 

Todo o resto estava certo.

Obrigado !

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.