Foros del Web » Programando para Internet » PHP »

Extensión PDO?

Estas en el tema de Extensión PDO? en el foro de PHP en Foros del Web. Hola amigos, una empresa nos está haciendo un desarrollo en PHP, la cual accede a una base de datos MySQL y solo a esta. Ahora ...
  #1 (permalink)  
Antiguo 23/02/2006, 06:13
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 15 años, 11 meses
Puntos: 0
Extensión PDO?

Hola amigos,

una empresa nos está haciendo un desarrollo en PHP, la cual accede a una base de datos MySQL y solo a esta. Ahora nos dicen que quieren acceder a MySQL usando la extensión PDO y piden que lo habilitemos. PDO es un concepto nuevo para mí y por lo que he leído por ahí es una especie de capa que abstrae PHP del tipo de base de datos con la que se conecta de manera que los programas resulten más portables. ¿Estoy en lo cierto? ¿Pero si mi base de datos es y siempre será MySQL para qué quieren usar PDO? No será que se han bajado de la red un trozo de código con conexiones PDO y no tienen ganas de cambiar las llamadas a la base de datos?

Un consejo por favor. Quiero decirles que ni hablar de PDO y que usen mysql_connect(), mysql_query(); etc como siempre pero necesito arguementos.

Muchas gracias.

HS
  #2 (permalink)  
Antiguo 23/02/2006, 06:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Un consejo por favor. Quiero decirles que ni hablar de PDO y que usen mysql_connect(), mysql_query(); etc como siempre pero necesito arguementos.
No es necesario que les digas que usen las funciones nativas de Mysql (mysql_xxx()) pero si que tal vez recomendarles que usen otras capas de abastracción de Base de datos que cumplan con los requisitos que ellos necesiten y que sean como "classe".

Por ejemplo:

Adodb (tiene versión extensión y classe) esta sería una buena opción .. si no quieres instalar nada .. que usen la opción "classe" .. si lo amerita .. instalan la extensión.

ezSQL (sólo classe) .. y así un largo etc. Por ejemplo PEAR también incluye sus própias extensiones y classes como "capas de abstracción de BBDD".

Por cierto .. PDO funciona para PHP 5.x (tu usas esa versión en tus servidores?)
http://www.php.net/pdo

No discuto que una extensión sea mejor que un equivalente como "classe" (la extensión es "compilada" .. la "classe" es código PHP corriente interpretado (programado en OOP eso sí).

Tampoco discuto que PDO sea una excelente capa de abastracción de BBDD pero si que hay que tener encuenta que NO siempre quien desarrolla una aplicación puede estar en condiciones de hacer peticiones de instalaciones de ciertas extensiones para PHP o incluso de disponer de cierta versión de PHP .. así que lo mejor (visto como desarrollador) es en muchos casos "sacrificar" un poco de "rendimiento" en pro de NO depender de donde se ejecute la aplicación que desarrolle.

Un saludo,
  #3 (permalink)  
Antiguo 23/02/2006, 06:53
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
No sé si uno pueda asegurar que siempre usará tal o cual heramienta, los sistemas crecen y a veces piden mas capacidad, mejor desempeño y cosas asi y algo debe cambiar (A lo mejor alguna ecuacion de la psicohistoria te muestre ese futuro, jeje).
Según lei, PDO viene incluida con PHP y que esta sería equivalente a lo que es JDBC, imagino, guardando las proporciones. No creo que haga mal incorporarla y beneficiarse de un forma algo mas natural de acceder a los datos, que es lo que aporta la orientación a objetos.
  #4 (permalink)  
Antiguo 23/02/2006, 08:33
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 15 años, 11 meses
Puntos: 0
Nuestro PHP es 5.1.xx pero tenemos que recompilar PHP para poder usar PDO porque hace poco lo recompilamos para habilitar no sé qué cosa y en el configure no pusimos nada de pdo. Ya compilarlo una vez fue una pesadilla y encima hay aplicaciones productivas que se tienen que parar... total, que no nos hace ninguna gracia. Así que yo lo que quiero es decirles a esta gente que no está haciendo el desarrollo algo como : ¿Y para qué cojxxxx quereis usar PDO? ¿Teneis algo en contra del API de MySQL? Pero en fin... a mí lo que menos me preocupa es que dentro de dos años alguien diga que en lugar de MySQL hay que usar Progress. Si se hace pues nada, reviso el código y cambio lo que tenga que cambiar... pero es que recompilar PHP no nos apetece nada. Además, según tengo entendido esta librería PDO es experimental, ¿no? Un poco fuerte utilitzarla para un portal corporativo, ¿no?
  #5 (permalink)  
Antiguo 23/02/2006, 08:48
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Cita:
Iniciado por Hari Seldon
Nuestro PHP es 5.1.xx pero tenemos que recompilar PHP para poder usar PDO porque hace poco lo recompilamos para habilitar no sé qué cosa y en el configure no pusimos nada de pdo. Ya compilarlo una vez fue una pesadilla y encima hay aplicaciones productivas que se tienen que parar... total, que no nos hace ninguna gracia.
Imagino que usas Linux, cual distribución? Me parece que ya hay paquetes disponibles para algunas distribuciones, por tanto no es necesario compilar.

Cita:
Iniciado por Hari Seldon
Además, según tengo entendido esta librería PDO es experimental, ¿no? Un poco fuerte utilitzarla para un portal corporativo, ¿no?
Si es experimental, ahi tienes la mejor razón para decirles que no la usen.
  #6 (permalink)  
Antiguo 23/02/2006, 08:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Pero en fin... a mí lo que menos me preocupa es que dentro de dos años alguien diga que en lugar de MySQL hay que usar Progress.
Justamente por eso están todas esas capas de abstracción de BBDD escritas en PHP (son classes) como Adodb, ezSQL .. De hecho proyectos muy grandes tipo foros (phpBB) .. CMS's (PHP-Nuke .. etc) usan por ejemplo "Adodb" (que tiene ya sus añitos de desarrollo y versiones por médio .. lo último que hicieron es crear una "extensión" que se usa igual que si usas la versión "classe"). En principio por qué son proyectos que tienen que funcionar en cualquier situación (versión PHP .. disponibilidad de ciertas extensiones .. etc).

Un saludo,
  #7 (permalink)  
Antiguo 23/02/2006, 09:06
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 15 años, 11 meses
Puntos: 0
Claudio, nuestro Linux es Debian Sarge. No sé si habrá paquete o no pero hace poco tuvimos que instalar odbtp y había paquete pero como no funcionaba al final tocó recompilar. No sé si pasaría lo mismo con pdo.

Bueno, pues quereis que os diga... yo soy partidario de decirles que lo de pdo lo usen en su casa si quieren, que con nosotros usen la api de toda la vida y punto.

Gracias.
  #8 (permalink)  
Antiguo 23/02/2006, 09:17
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Por si te interesa los paquetes debian para php5 mysql y todo eso, te dejo este sitio:

http://www.dotdeb.org/
  #9 (permalink)  
Antiguo 23/02/2006, 09:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Bueno, pues quereis que os diga... yo soy partidario de decirles que lo de pdo lo usen en su casa si quieren, que con nosotros usen la api de toda la vida y punto.
Nooo .. no les digas eso .. ¿Que imagen vas a dar como proveedor? ..

Ya he comentado que hay -otras- "Capas de abstracción de BBDD" .. Creo que una buena recomendación sería que les remitas a "Adodb" como sugerencia (si es que les complica tanto re-compilar o instarlar cierto paquete). Esa "capa" en su base usa las "API's" de las extensiones de PHP que tengas instaladas básicas: Mysql, PostgreSQL .. ODBC .. etc.

Un saludo,
  #10 (permalink)  
Antiguo 23/02/2006, 10:07
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 15 años, 11 meses
Puntos: 0
Cita:
Iniciado por Cluster
Nooo .. no les digas eso .. ¿Que imagen vas a dar como proveedor? ..
Cluster, nosotros no somos los proveedores. Somos los clientes. Esta gente nos está haciendo un portal corporativo pero el servidor lo tenemos nosotros, por eso nos han pedido que habilitemos PDO. Además, nosotros mismos haremos el futuro mantenimiento de la aplicación. Mi reticencia proviene del hecho que a pesar de llevar 6 años trabajando con PHP hasta hoy no he oído hablar de PDO y por lo poco que he leído hoy mismo por ahí no creo que lo necesitemos. Por eso estoy un poco estupefacto y busco cargarme de razones para decirles que no, que se olviden de PDO... que usen el mysql_connect(), etc de toda la vida y ya está. Pero no sé si soy tonto por pensar así o si es que no me entero.
  #11 (permalink)  
Antiguo 23/02/2006, 10:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Cluster, nosotros no somos los proveedores. Somos los clientes. Esta gente nos está haciendo un portal corporativo pero el servidor lo tenemos nosotros, por eso nos han pedido que habilitemos PDO
Ok.

Cita:
Mi reticencia proviene del hecho que a pesar de llevar 6 años trabajando con PHP hasta hoy no he oído hablar de PDO
Como ya has visto eso es nuevo en PHP 5 .. y PHP 5 a su vez no tiene tanto tiempo en "producción" (versión estable) ...

Cita:
Por eso estoy un poco estupefacto y busco cargarme de razones para decirles que no, que se olviden de PDO... que usen el mysql_connect(), etc de toda la vida y ya está. Pero no sé si soy tonto por pensar así o si es que no me entero.
Seré pesado .. pero una vez más insisto en "capas de abstracción de BBDD" como "Adodb" o cualquier otra ..

No sé si tu has usado alguna de estas características alguna vez .. o has desarrollado alguna .. Pero eso es lo mejor para no depender directametne de las funciones clasicas de "mysql_xxx()" y desarrollar aplicaciones que a posteriori podrían migrar a otros motores de BBDD (como PostgreSQL) sin más cambios en tu aplicación que retocar poco o nada alguna que otra sentencia SQL a lo sumo.

Un saludo,
  #12 (permalink)  
Antiguo 23/02/2006, 10:15
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Bueno, visto así tu mandas. Si no quieres en tus servidores algo potencialmente inseguro, no lo colocas, y punto. Nadie quiere ser "conejillo de indias".
  #13 (permalink)  
Antiguo 23/02/2006, 10:33
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 15 años, 11 meses
Puntos: 0
Cita:
Iniciado por claudiovega
Bueno, visto así tu mandas. Si no quieres en tus servidores algo potencialmente inseguro, no lo colocas, y punto. Nadie quiere ser "conejillo de indias".
Es que más que nada es eso. Una cosa tan nueva... además se trata de una web que no vivirá muchos años. Yo creo que mejor quedarse con los mysql_xxxxx() y olvidarse de experimentos por ahora.

Gracias
  #14 (permalink)  
Antiguo 23/02/2006, 10:38
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 15 años, 11 meses
Puntos: 0
Cita:
Iniciado por Cluster
Seré pesado .. pero una vez más insisto en "capas de abstracción de BBDD" como "Adodb" o cualquier otra ..

No sé si tu has usado alguna de estas características alguna vez .. o has desarrollado alguna .. Pero eso es lo mejor para no depender directametne de las funciones clasicas de "mysql_xxx()" y desarrollar aplicaciones que a posteriori podrían migrar a otros motores de BBDD (como PostgreSQL) sin más cambios en tu aplicación que retocar poco o nada alguna que otra sentencia SQL a lo sumo.

Un saludo,
Es que no le acabo de ver la necesidad a esta capa, sea PDO, adodb o cualquier otra. Yo no tengo ningún problema con PDO en particular, el problema lo tengo con la capa en general. Simplemente no le veo la necesidad y me parece fuera de lugar que esta gente diga que quiere atacar la bbdd con PDO. Además, sospecho que no lo hacen por hacernos un favor sino para simplificar su código.

Personalmente estoy más familiarizado con la api tradicional y estoy seguro que jamás migraremos de base de datos y jamás sacaremos beneficio alguno de esta capa.
  #15 (permalink)  
Antiguo 23/02/2006, 11:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A ti lo que te preocupa es hacer una instalación de una extensión en tus servidor .. OK?

BUeno .. "Adodb" (o cualquiera de esas características) no es más que un "script" para que lo veas claro ... Cuando tu empresa que te desarrolla el software lo quiera usar .. lo usará sin preguntarte nada, sin pedirte nada más extra que tocar en tus servidores.

Toda capa de abstracción de BBDD no sólo presta la funcionalidad de "cambiar de motor de BBBDD" fácilmente . .también tienen otras funcionalidades: Caché de consultas, centralización de gestión de errores (para no tener que andar con "or die(mysql_error())" o creando funciones .. incluido log's y demás sin mostrar nada al usuario final .. comodidad de algunas operaciones típicas con el manejo de datos (paginación en algunos casos .. etc ..).

Cita:
Además, sospecho que no lo hacen por hacernos un favor sino para simplificar su código.
Bueno .. cuando uno desarrolla se trata de eso mismo .. de simplificar el código, reusar lo que puedas haber hecho en alguna otra ocasión .. Seguro que tu también lo haces?

Si yo me dedico a desarrollo de aplicaciones ... seguro que tengo implementado más de alguna taréa típica que hagan mis aplicaciones .. ya sea "propia" o incluso de "terceros". Si desarrollo para diferentes "clientes" y resulta que un día mi aplicación tiene que funcionar con "Mysql" y mañana con "PostgreSQL" (tal vez no toda la aplicación sino ciertos códigos base que use) ... es "lógico" que intente usar lo que ya en su momento perdí tiempo en ese desarrollo y no tener que re-inventar lo mismo una y otra vez o limitarme a que "ops! lo hice para mysql .. ahora lo tengo que hacer para otro RDBMS".

De todas formas como tu dices "tu eres el cliente" .. así que al final vas hacer lo que tu creas oportuno. Si no quieres aprender a manejar tal o cual capa de abstracción de BBDD y que te usen en su base sólo "mysql_xxx()" no tienes más que decirles como argumento: "por que al final el que lo va a manterer soy yo, y yo el que pago". Y se acabó el cuento.

Una pregunta .. ¿tu has usado alguna Capa de abstracción de BBDD (sea cual sea)?

Un saludo,
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 14:21.