Comunidad de diseño web y desarrollo en internet online

error con codigo php + mysql

Citar            
MensajeEscrito el 21 Ene 2013 10:00 am
Buenas!
Les comento el problema que estoy teniendo
realmente mi conocimiento sobre php es muy poca
pero estoy interesandome mas en este lenguajem y siguiendo tutoriales

la cuestion es que me encargaron un trabajo donde tengo que utilizar una base de datos .sql

estoy siguiendo un tutorial primero para ver si me sale

pero me esta dando este error

Fatal error: Call to a member function prepare() on a non-object in /www/estudiosr/htdocs/class/config.php on line 36

--------

en esa parte del codigo tengo lo siguiente

$stm=$this->pdo->prepare("SELECT productos.id,productos.producto,productos.precio,productos.vig,fotos.name FROM productos,fotos WHERE productos.id=fotos.idpro ORDER BY rand() LIMIT 0,10");

la verdad que no se que podra ser, ojala puedan darme una mano

gracias!

Por santy.sl

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2013 12:22 pm
El error que tenes es que estas llamando a un método de un elemento que no es un objeto...

Fatal error: Call to a member function prepare() on a non-object in /www/estudiosr/htdocs/class/config.php on line 36

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox
Citar            
MensajeEscrito el 21 Ene 2013 06:33 pm
y como podria solucionarlo?
perdon la ignorancia jeje

Por santy.sl

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2013 07:26 pm
Este es el codigo completo del archivo config.php
como host y nombre de usuario tengo puesto localhost, y root pero deberia cambiarlos tambien ya que ahora lo tengo subido a un servidor

el codigo es este

<?php
session_start();
class Config{

private $pdo;
private $datos;

public function __construct () {

$this->datos=array();
$host="localhost";
$db="carrito";
$username="root";
$passwrd="";
$dsn="mysql :host=$host; dbname=$db ";


try{
$this->pdo=new PDO($dsn,$username,$passwrd);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);

}

catch(Exception $e){

$this->pdo=null;
error_log("Error ".$e->getMessage());

}


}

public function getProductos (){

$stm=$this->pdo->prepare("SELECT productos.id,productos.producto,productos.precio,productos.vig,fotos.name FROM productos,fotos WHERE productos.id=fotos.idpro ORDER BY rand() LIMIT 0,10");

$stm->execute();

while($row=$stm->fetch()){


$this->datos[]=$row;

}

return $this->datos;
}


}

?>




Gracias de nuevo

Por santy.sl

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Ene 2013 07:32 pm
fijate en esta porcion de codigo

Código PHP :

catch(Exception $e){

        $this->pdo=null;
        error_log("Error ".$e->getMessage());

} 

tu error esta en que se esta ejecutando esa porcion de codigo, mira que ahi estas dando un valor nulo a la propiedad pdo y por eso te lanza ese error de que no es un objeto

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Ene 2013 07:39 pm
Ahi borre esta linea
$this->pdo=null;

pero me sigue tirando el mismo error

Por santy.sl

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 22 Ene 2013 09:21 pm
a lo que me referia hay algo erroneo en la conexion, mira kita los

try catch
que estas usando para veas cual es el error original, ya que el TRY lo qyue hace es capturar el error,lo que yo creo es que la conexion con la DB no se esta realizando , faijate eso.
:)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.