Anda di halaman 1dari 18

PHP

Utilizando Base de Datos

PARA QUE UNA BD?


PHP est especialmente diseado para la creacin de sitios
webs dinmicos. Para crear estos sitios normalmente se utiliza
algn tipo de base de datos desde donde obtenemos la
informacin que queremos mostrar, ya sean noticias,
preguntas y respuestas de un foro u otro tipo de informacin
dinmica.

QUE BD UTILIZAR?
Si usamos php normalmente
usaremos MySQL como
base de datos para iniciar
nuestro sitio, el problema
aparece cuando nuestro
proyecto crece tanto que
necesita hacer uso de otro
tipo de base de datos ms
robusta.

CAMBIO DE BD?
Desafortunadamente el acceso en PHP cada base de datos es
muy diferente. Para conectarnos a mysql, debemos usar
mysql_connect(); cuando decida cambiar a Oracle o
Microsoft SQL Ser ver, debe usar ocilogon() o
mssql_connect() respectivamente. Lo peor es que
tambin los parmetros de cada funcin son diferentes.

ADOBD AL RESCATE
Una librera de abstraccin de los datos como ADODB es lo
que necesitamos si deseamos asegurar en gran medida la
portabilidad de la aplicacin, dado que provee una serie de
funcines comunes para comunicarse con las distintas bases
de datos.

ADOBD AL RESCATE
Actualmente soporta:
MySQL,

PostgreSQL, Oracle, Interbase, Microsoft SQL


Server, Access, FoxPro, Sybase, ODBC y ADO.

Puede obtener ADODB en


http://adodb.sourceforge.net/#download

EL CODIGO
Variables de
Conexin, se
definen las
variables de
coneccin al
servidor.

EL CODIGO
Incluir las
librerias de
ADODB

EL CODIGO

Conexion a la BD

EL CODIGO

Iteracin de
elementos y
captura de errores

OTRAS FUNCIONES
$recordset->Move($pos) mueve el recordset a una fila
en particular. ADODB soporta avance de filas en todas las
bases de datos.
$recordset->RecordCount() retorna el total de filas
obtenidas en el recordset. Algunas bases de datos no
soportan esto y se devuelven un -1.
$recordset->GetArray() coloca el resultado del
recordset en un array.

OTRAS FUNCIONES
rs2html($recordset)
esta funcin genera una tabla
HTML con el resultado del
recordset. (Es necesario incluir
la librera 'tohtml.inc.php'

INSERTS Y UPDATES
Imagine que tenemos los siguientes datos para guardar en
una base de datos.
id = 3
fecha = mktime(0,0,0,8,31,2001) /* 31 Agosto 2001 */
nota = why don't we call it off
Cuando cambie de base de dato este formato de datos
puede no funcinar.

INSERTS Y UPDATES
El primer problema es que cada base de datos usa las fechas
en un formato distinto, MySQL espera YYYY-MM-DD
como formato, otras bases de datos requieren otros formatos.
ADODB tiene una funcin que puede ayudarnos DBDate()
que convierte una fecha en el formato correcto para realizar
updates o inserts.
La comilla simple del campo nota tambin es un problema.
La funcin qstr() nos puede ayudar en esto.

COMO SE USAN?
Debemos invocar a las funciones al momento de concatenar
las variables a la query a realizar, de esta forma nos
aseguramos de que el campo vaya formateado de la forma
correcta en la query.

COMO SE USAN?
ADODB tiene tambien dos funcines que ayudan a
reconocer si un insert update o delete han sido correctos.
$connection->Affected_Rows() (devuelve el total de
filas afectadas por un insert o un delete ).
$recordset->Insert_ID() (devuelve el ltimo valor
generado por un campo autoincrement en un insert).
No todas las bases de datos soportan estas funcines (vea la
documentacin).

CONCLUSIONES
ADODB es lo suficientemente robusto y completo para
casi cualquier aplicacin.
Est siendo actualizado permanentemente y tiene muchos
seguidores por lo que es una muy buena opcin.

LINKS DE INTERES
Sitio Oficial: http://adodb.sourceforge.net/
Documentacion: http://www.lacorona.com.mx/for tiz/
adodb/docs-adodb-es.htm
Tutorial mySQL: http://phplens.com/lens/adodb/tute.htm