Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Makroll en 29 Octubre 2013, 20:54 PM

Título: Fatal error: Call to a member function prepare() on a non-object in
Publicado por: Makroll en 29 Octubre 2013, 20:54 PM
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);
Título: Re: Fatal error: Call to a member function prepare() on a non-object in
Publicado por: #!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
Título: Re: Fatal error: Call to a member function prepare() on a non-object in
Publicado por: alex171294 en 8 Noviembre 2013, 00:58 AM
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!
Título: Re: Fatal error: Call to a member function prepare() on a non-object in
Publicado por: #!drvy en 8 Noviembre 2013, 01:02 AM
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