Fatal error: Call to a member function prepare() on a non-object in

Iniciado por Makroll, 29 Octubre 2013, 20:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Makroll

Tengo este error:

Fatal error: Call to a member function prepare() on a non-object in /var/www/op/DatosLibros.php on line 35

DatosLibros.php


<?php
class DatosLibros
 

  private 
$cadenaConexion;
  private 
$user;
  private 
$password;
  private 
$objetoConexion;
  
public function 
__construct($cadenaConexion,$user,$password)
     {
     
$this->cadenaConexion=$cadenaConexion;
     
$this->user=$user;
     
$this->password=$password;
     }
public function 
conectar ()
  {
   try
    {
     
$this->objetoConexion= new PDO ($this->cadenaConexion,$this->user,$this->password);
     
$this->objetoConexion->setAttribute(PDO::ATTR_EARMODE,PDO::EARMODE_EXCEPTION);
     }
   catch (
PDOException $ex)
    {
     echo 
"Se ha presentado un problema a la hora de conectar con la base de datos";
     }
   }
public function 
desconectar ()
    {
    
$this->objetoConexion=null;
    }
public function 
ejecutar ($strComando)
 {
  try
    {
     
$ejecutar $this->objetoConexion->prepare($strComando);
     
$ejecutar->execute();
     
$rows$ejecutar->fetchAll();
     }
  catch (
PDOException $ex)
    {  
     throw 
$ex;
     }
   }
  } 
?>



Esta es la linea del error
$ejecutar = $this->objetoConexion->prepare($strComando);

#!drvy

objetoconexion no esta declarado..

Comprueba que se inicia bien al llamar a conectar y que no llamas a desconectar

Saludos

alex171294

Cita de: @drvy en 29 Octubre 2013, 23:33 PM
objetoconexion no esta declarado..

Comprueba que se inicia bien al llamar a conectar y que no llamas a desconectar

Saludos

drvy tiene razón, pero corrijo una cosa:

está declarado en la linea 7 como un miembro privado de la clase drvy, en realidad lo que está tirando el error fatal es porque en dicha variable NO hay un objeto, si bien la variable está declarada, no tiene el objeto, esto puede ocurrir porque no estás llamando a la función conectar.

revisa el contenido de $objetoconexion con un var_dump();

en otras palabras, la variable está declarada, pero no está definida, como dice drvy revisa si estás llamando a esa función y sino revisa que es lo que tiene la variable con el var_dump

saludos!

#!drvy

jajaj en realidad eso es lo que queria decir.. pero vi mas facil el decir que no esta declarada xD

De todos modos el error lo dice todo: Error fatal: Llamada a funcion miembro prepare() sobre un no-objeto en...

Saludos