Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema con librería PDO

Estas en el tema de Problema con librería PDO en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Como estan compañeros mi problema es el siguiente estuve tratando de utilizar con un ejemplo sencillo la librería PDO, que por lo que he podido ...
  #1 (permalink)  
Antiguo 31/07/2008, 08:34
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Problema con librería PDO

Como estan compañeros mi problema es el siguiente estuve tratando de utilizar con un ejemplo sencillo la librería PDO, que por lo que he podido investigar viene activada a partir de la version PHP 5.1 el caso es que no he podido hacer funcionar este sencillo ejemplo de consulta:
Código PHP:
//Nos conectamos
$db = new PDO('mysql:host=' $servidor ';dbname=' $bd$usuario$contrasenia);
 
//Preparamos la consulta para dejarla lista para su ejecución
$consulta $db->prepare("SELECT * FROM habitad ORDER BY id_habitad ASC");
 
//Ejecutamos la consulta
$consulta->execute();
 
//Recorremos el set de resultados mostrando la información
while($datos $consulta->fetch()){
    echo 
$datos[0] . '  ' $datos[1] . '<br />';}
 
//Cerramos la conexión a la vez que destruimos nuestra instancia de PDO
$db null
El error que me arroja es que no se encuentra la clase PDO en mi script, como si necesitara incluirla, cabe aclarar que la versión de PHP que trabajo es la 5.2.1 en modo local con windows, habrá que modificar algo en el php.ini? o que otra cosa hay que hacer para trabajar con esta librería
Agradesco sus aportes y sugerencias.



Saludos.

Última edición por Carlojas; 02/08/2008 a las 08:02
  #2 (permalink)  
Antiguo 31/07/2008, 09:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con librería PDO

Busca en tu php.ini las lineas extension=pdo_mysql.dll y extension=pdo.dll, y descomentalas.

Saludos.
  #3 (permalink)  
Antiguo 31/07/2008, 09:22
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problema con librería PDO

Gracias GatorV por la respuesta, te comento ya lo hice y sigue sin funcionar, alguna otra sugerencia algo que me haga falta por hacer?




Saludos.

Última edición por Carlojas; 31/07/2008 a las 09:50
  #4 (permalink)  
Antiguo 31/07/2008, 10:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con librería PDO

Haz hecho un phpinfo() para ver si al hacer los cambios aparece la libreria PDO habilitada?

Saludos.
  #5 (permalink)  
Antiguo 01/08/2008, 08:00
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problema con librería PDO

No, ni aún haciendo los cambios respectivos logró hacer que funcione será la versión del PHP? aunque lo dudo.





Saludos.
  #6 (permalink)  
Antiguo 01/08/2008, 08:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con librería PDO

Tienes las librerias de MySQL correctamente en tu PATH?

Trata de cargar el apache usando el ejecutable directamente apache.exe, con eso se abrira una ventana y si PHP no puede cargar las extensiones te lo indicara.

Tambien revisa que estes modificando el php.ini correcto.

Saludos.
  #7 (permalink)  
Antiguo 01/08/2008, 08:57
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problema con librería PDO

Nada compañeros instale la versión PHP 5.2.6, y ahora aunque e descomentado las líneas que me mencionaron antes solo me aparecen habilitados los drivers PDO, sqlite y sqlite2, he hecho todo lo que me han recomendado y al ejecutar el código me dice que no se ha encontrado el driver: este es el código que utilizo actualmente
Código PHP:
try {
$db = new PDO('mysql:dbname=zoologico;host=localhost'$user$pass);
$db->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

// Preparamos un Query
$comando $db->prepare("SELECT * FROM habitad ORDER BY id_habitad ASC");
// ejecutamos la consulta
$comando->execute();

while( 
$datos $comando->fetch() ) {
// Imprimimos resultados
echo $datos[0] . '  ' $datos[1] . '<br />';
}
// Cerramos la conexion
$comando null;
$db null;
} catch( 
PDOException $e ) {
echo 
"Error de conexión: " $e->getMessage();



Saludos.
  #8 (permalink)  
Antiguo 01/08/2008, 09:12
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problema con librería PDO

Nada GatorV, hice lo que mencionaste revise bien la extensiones, el php.ini, estoy usando el Appserv, y aún me manda el mismo error que no se encuentra el driver

Error de conexión: could not find driver



Saludos.
  #9 (permalink)  
Antiguo 01/08/2008, 09:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con librería PDO

Te aparece ya funcionando PDO con sqllite y sqllite2?
  #10 (permalink)  
Antiguo 01/08/2008, 09:23
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problema con librería PDO

Exacto solo me aparecen enabled esas dos opciones nada mas en la configuración PDO.





Saludos.
  #11 (permalink)  
Antiguo 01/08/2008, 09:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con librería PDO

En ese caso como te dije anteriormente necesitas asegurarte que en el PATH de tu sistema operativo este la carpeta de MySQL, o copiar los dlls de MySQL a C:\Windows, para que puedas activar la extension pdo_mysql.dll.

Saludos.
  #12 (permalink)  
Antiguo 01/08/2008, 09:46
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problema con librería PDO

Listo GatorV gracias por tu ayuda funcionó a la perfección



Saludos.
  #13 (permalink)  
Antiguo 18/04/2011, 12:52
Avatar de siudymar  
Fecha de Ingreso: abril-2011
Ubicación: venezuela
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema con librería PDO

to tengo el mismo problema ya se activo el pdo.dll y el pdo_pgsql.dll estan activadas en el phpinfo() pero me sigue dando el error_ Fatal error: Call to a member function query() on a non-object in C:\AppServ\www\acreencias\funciones\funciones.php on line 564, cabe mencionar que tengo window 7 sera esto uno de los problemas tengo que cargar appserver en windowxp para que pueda funcionar
  #14 (permalink)  
Antiguo 19/04/2011, 07:25
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con librería PDO

siudymar, bienvenido a FDW!

No es recomendable revivir temas antiguos o formular tus preguntas en un tema que, aunque parecido, realmente no es igual. Mejor crea un tema nuevo para evitar revolver respuestas y, de paso, tener mejores probabilidades de que alguien aporte una solucion a tu problema.

Ahora, el error que tienes no es exactamente de que PDO o alguna otra libreria no este activa, sino que estas tratando de acceder a un metodo por medio de una variable que no es de tipo objeto.

Ejemplo:
Código PHP:
Ver original
  1. $db = new PDO('bla', 'bla', 'bla');
  2. // Si la sentencia anterior fallo, entonces lo siguiente te dara el error que mencionas:
  3. $res = $db->prepare("SELECT * FROM tabla");

Si falla el crear una nueva instancia de PDO (o cualquier otra clase), no necesariamente es porque no existe el driver, puede ser tambien porque no estas especificando bien todos los parametros necesarios.

Por favor, siempre que tengas un error, muestra el codigo, al menos unas 10 o 20 lineas antes de donde te da el error y hasta unas 10 o 20 lineas despues, especificando donde exactamente cual es el numero de linea en cuestion.
__________________
- León, Guanajuato
- GV-Foto
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:58.