Foros del Web » Programando para Internet » PHP »

Error con php + mysql

Estas en el tema de Error con php + mysql en el foro de PHP en Foros del Web. Hola que tal! les paso a comentar mi problema para empezar no manejo mucho php pero para un trabajo tengo que hacer que se conecte ...
  #1 (permalink)  
Antiguo 21/01/2013, 13:38
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Error con php + mysql

Hola que tal!
les paso a comentar mi problema
para empezar no manejo mucho php
pero para un trabajo tengo que hacer que se conecte a mi base de datos .sql
para eso segui tutoriales y demas para ir practicando y entendiendo mas

hice todo y lo subi a mi servidor pero me aparece esto

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


El error me lo da en la siguiente linea

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


Mi codigo completo de config.php es el siguiente

Código PHP:
<?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;
}


}

?>




Agradeceria mucho su ayuda
  #2 (permalink)  
Antiguo 21/01/2013, 13:43
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error con php + mysql

Quita los espacios de tu dsn:

Código PHP:
Ver original
  1. $dsn = "mysql:host=$host;dbname=$db";

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 21/01/2013, 13:46
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Error con php + mysql

Gracias por la pronta respuesta, ahi lo corregi pero me sigue dando el mismo error en la linea 36
  #4 (permalink)  
Antiguo 21/01/2013, 13:49
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error con php + mysql

Revisa tu consulta y coloca un try catch (captura PDOException) a ver que error hay.

¿Qué versión de PHP usas?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 21/01/2013, 13:52
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Error con php + mysql

No estoy seguro que version es... soy bastante duro con PHP
pero no me queda otra que aprenderlo a los golpes jaja
ya probe todo pero sigo sin encontrarle la vuelta

si estos datos estan mal puede que sea la causa?
$this->datos=array();
$host="localhost";
$db="carrito";
$username="root";
$passwrd="";
$dsn="mysql :host=$host; dbname=$db ";
  #6 (permalink)  
Antiguo 21/01/2013, 13:58
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error con php + mysql

Claro, si hay un error en la conexión no te va a funcionar. Pero los espacios también generan el error.

para usar excepciones, tienes que cambiar esta línea:

Código PHP:
Ver original
  1. $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Prueba así, a ver si la conexión está bien:

Código PHP:
Ver original
  1. try{
  2. $this->pdo=new PDO($dsn,$username,$passwrd);
  3. $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  4.  
  5. }
  6.  
  7. catch(PDOException $e){
  8.  
  9. $this->pdo=null;
  10. echo "Error ".$e->getMessage();
  11.  
  12. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 21/01/2013, 14:01
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Error con php + mysql

a ver si entendi

en db pongo el nombre de la base de datos creada en mi servidor en mi caso se llama carrito
nombre de usuario pongo el nombre de ususario creado en la base de datos de mi servidor
passwrd lo mismo...
en host deberia poner la direccion de mi servidor? es decir ftp.estudiocreativosr.com.ar ?


PERDON por la molestia!
  #8 (permalink)  
Antiguo 21/01/2013, 14:43
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Error con php + mysql

Ahi probe con lo que me dijiste y me da el siguiente error

Parse error: syntax error, unexpected T_PUBLIC in /www/estudiosr/htdocs/class/config.php on line 31

la linea 31 es esta
public function getProductos (){
  #9 (permalink)  
Antiguo 21/01/2013, 14:46
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error con php + mysql

Quita los espacios al dsn como te dije y consulta cual es tu host, usuario y contraseña. Al colocar los datos correctos te va a funcionar.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #10 (permalink)  
Antiguo 21/01/2013, 15:10
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Error con php + mysql

ya cambie lo que me dijiste, saque los espacios y puse los nombres correspondientes
el error que me da ahora es
Error SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'ftp.estudiocreativosr.com.ar' (111)
Fatal error: Call to a member function prepare() on a non-object in /www/estudiosr/htdocs/class/config.php on line 36
  #11 (permalink)  
Antiguo 21/01/2013, 15:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error con php + mysql

Pues ahora el problema es que tu conexión esta mal, debes de contactar a tu hosting para que te indiquen cual es el servidor MySQL correcto.

Saludos.
  #12 (permalink)  
Antiguo 21/01/2013, 15:20
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Error con php + mysql

Listo CASI solucionado!
ahora no me sale ningun error, solo que no se me ven las diferentes opciones
sino se me repite la misma imagen siempre
  #13 (permalink)  
Antiguo 21/01/2013, 15:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Error con php + mysql

Pon tu código completo, en el que pusiste no viene nada de imágenes.

Saludos.

Etiquetas: mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:09.