Arzanardi 0 Denunciar post Postado Março 6, 2008 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
Isabelle_Andrade 0 Denunciar post Postado Março 6, 2008 Posta o código. Compartilhar este post Link para o post Compartilhar em outros sites
Marcio Leandro 0 Denunciar post Postado Março 6, 2008 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
Arzanardi 0 Denunciar post Postado Março 6, 2008 <? //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
Marcio Leandro 0 Denunciar post Postado Março 6, 2008 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
Arzanardi 0 Denunciar post Postado Março 7, 2008 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