Ir para conteúdo

Arquivado

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

Arzanardi

[Resolvido] Fatal Error PDO

Recommended Posts

Pessoal,

 

Estou utilizando a classe PDO para persistencia de BD.

 

Porem quando vou executar o prepare() da a seguinte msg:

Fatal error: Call to a member function prepare() on a non-object in C:\WEB\htdocs\pagina\db\ConexaoPDO.php on line 37

 

Alguem sabe me dizer o que causaria esse erro?

 

Se precisarem de mais detalhes eu posto o codigo.

Estou fazendo tudo certinho a conexao e tal.

 

Obirgado por enquanto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está chamando um método de um não-objeto.

Verifique se a classe foi corretamente instanciada. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?
//ARQUIVO CONEXAOPDO.PHP
class ConexaoPDO
{
	private $PDO = null;
	
	public function __construct($host, $user, $pass, $db)
	{
		try
		{
			$PDO = new PDO('mysql:host='.$host.';dbname='.$db, $user, $pass);
		} 
		catch (PDOException $e) 
		{
			echo "Falha ao conectar ao banco de dados: " . $e->getMessage();
			exit;
		}
	  }	


	function getRecords($selectSQL, $params=null)
	{
		try
		{			
			$query = $PDO->prepare($selectSQL);
			$res   = $query->execute($params);			
			return $res->fetchAll(PDO::FETCH_ASSOC);
		}
		catch (PDOException $e) 
		{
			echo "Erro ao obter dados: " . $e->getMessage();
		}
	}
}
?>

Eu utilizo assim:

 

//ARQUIVO TESTE.PHP
require ("ConexaoPDO.php");
$con = new ConexaoPDO("localhost", "root", "", "requestweb");
$dados = $con->getRecords("select * from tbetapas");

Valeu ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

No construtor:

try
{
	$this->PDO = new PDO('mysql:host='.$host.';dbname='.$db, $user, $pass);
}

Na função getRecords()

try
{			
	$query = $this->PDO->prepare($selectSQL);
	$res   = $query->execute($params);			
	return $res->fetchAll(PDO::FETCH_ASSOC);
}
Você esqueceu do $this

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Márcio!

 

Perfeito! Muito obrigado...

 

so corrigindo, ainda deu um erro mas eu ja acertei (fetchAll não é do $res e sim do $query) e o codigo final seria

 

try
{			
	$query = $this->PDO->prepare($selectSQL);
	if($query->execute($params)) 
		 return $query->fetchAll(PDO::FETCH_ASSOC);
}

Valeu mesmo!

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.