Foro de elhacker.net

Programación => 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

Código:
<?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
Código:
$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
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