Monday, May 21, 2007

DataConnection.php (PHP ADO.NET)

Estoy trabajando actualmente en un proyecto en PHP5/PostgreSQL8 y la verdad que odio la programacion funcional asi que en lo posible he encapsulado el acceso a datos a la base de datos usando las siguientes funciones pg_connect, pg_exec, pg_cmdtuples, pg_close, pg_numrows y pg_fetch_row en las siguientes clases:
  • DataCommand
    • Open: void
    • ExecuteNonQuery : int
    • ExecuteReader : DataReader
    • Close
  • DataReader
    • Read
    • GetField
Lo hice lo mas parecido a ADO.NET porque es el model de acceso a datos de costumbre para mi. La hice en 30 Minutos y probablemente despues deba refinarla, por ejemplo cambiar el metodo Open de void a bool o causar una exception en el caso de conexion fallida pero aun estoy buscando como hacer un buen registro de errores. Asi es como lo estoy usando: ExecuteNonQuery("INSERT INTO tabla1(id,name) values(nextval('tabla1_seq'),'Valor')") . " Insertados "; $cmd = NULL; $cmd = ConnectData(); $reader = $cmd->ExecuteReader("Select Id from tabla1"); while($reader->Read()) { echo $reader->GetField(0) . " "; } $reader = NULL; $cmd = NULL; echo "HELLO PHP"; ?> Ambas clases tienes destructores para eliminar los datos no utilizados lo mas rapido posible. En fin es solo un ejercicio que despues pienso utilizar produccion y encuentro la sintaxis del lenguage y su perfomance bastante aceptables. Lo cierto es que estamos usando PHP despues de darnos un gran golpe usando Mono/XSP 1.2.3 [Descargar DataConnection.php]

2 comments:

knocte said...

¿Programación funcional? Seguramente querrías decir programación estructurada ;)

Por cierto, ¿qué golpe te diste con Mono? Seguro que es interesante contarlo en otra entrada del blog.

¡Sigue escribiendo!

Un saludo.

Johan.Hernandez said...

Hola, hahaha es cierto es programacion estructurada, lo que sucede es que estaba leyendo acerca de C# 3.5 y MF al mismo tiempo.
Si fue bastante duro el problema con mono pero sigo apoyando el proyecto.

Saludos amigo.