Sunteți pe pagina 1din 22

Company LOGO

Taller de PHP MySQL y Adodb

www.company.com

Company LOGO

Conceptos bsicos e Introduccin


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.

www.company.com

Company LOGO

Conceptos bsicos e Introduccin


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 Server, debe usar ocilogon() o mssql_connect() respectivamente. Lo peor es que tambin los parmetros de cada funcin son diferentes.

www.company.com

Company LOGO

Conceptos bsicos e Introduccin


Una librera de abstraccin de los datos como ADODB es lo que se necesita si desea asegurar en gran medida la portabilidad de su aplicacin. Provee una serie de funciones comunes para comunicarse con las distintas bases de datos.

www.company.com

Company LOGO

Conceptos bsicos e Introduccin


ADODB viene de " Active Data Objects DataBase" ADODB actualmente soporta MySQL, PostgreSQL, Oracle, Interbase, Microsoft SQL Server, Access, FoxPro, Sybase, ODBC y ADO.

Puede obtener ADODB en http://adodb.sourceforge.net/#download.

www.company.com

Company LOGO

Conectando a la base de datos


Ejemplo MySQL La base de datos usada con ms frecuencia en PHP es MySQL, entonces es posible que le resulte familiar el siguiente cdigo. Conectamos al server MySQL en localhost, a la base de datos HR -, y ejecutamos una sentencia SQL. El resultado es impreso en pantalla, una lnea por cada fila obtenida.

www.company.com

Company LOGO

Conectando a la base de datos


<?php $db = mysql_connect("localhost", "root", ""); mysql_select_db("hr",$db); $result = mysql_query("SELECT * FROM jobs",$db); if ($result === false) die("failed"); while ($fields = mysql_fetch_row($result)) { for ($i=0, $max=sizeof($fields); $i < $max; $i++) { print $fields[$i].' '; } print "<br>"; } ?>

www.company.com

Company LOGO

Conectando a la base de datos


//paso a paso con Adodb //ruta relativa al adodb include("../../../adodb/adodb.inc.php"); $db = NewADOConnection('mysql'); $db->Connect("localhost", "root", "", "hr");

www.company.com

Company LOGO

Conectando a la base de datos


La conexin puede parecer algo ms complicada que en MySQL pero se explica en que ADODB es totalmente orientado a objetos.

www.company.com

Company LOGO

Conectando a la base de datos


Para ahorrar memoria solo se carga las funciones especficas de la base de datos que vamos a utilizar. Cada driver tiene un archivo distinto que se carga mediante un include automticamente. Una vez cargado el driver que vamos a utilizar mediante la funcin NewADOConnection() nos conectamos a la base de datos usando $db->Connect().
www.company.com

Company LOGO

Ejecutando SQL
$result = $db->Execute("SELECT * FROM jobs"); if ($result === false) die("failed");
Para enviar una sentencia sql al motor de base de datos se utiliza la funcin Execute(). Esta funcin devuelve un objeto "recordset" si la ejecucin fue correcta o un "false" si hubo algn error.
www.company.com

Company LOGO

Ejecutando SQL
El objeto connection ($db) es responsable de la conexin a la base de datos, formateo de las SQL y las consultas al servidor. El objeto recordset ($result) es responsable de la obtencin de los resultados y el formateo de los resultados.

www.company.com

Company LOGO

Obteniendo datos
Obteniendo datos while (!$result->EOF) { for ($i=0, $max=$result->FieldCount(); $i < $max; $i++) print $result->fields[$i].' '; $result->MoveNext(); print "<br>"; }

www.company.com

Company LOGO

Obteniendo datos
El proceso para obtener datos es como el proceso para leer desde un fichero. Para cada lnea observamos si hemos llegado al final del fichero (EOF). Mientras no lleguemos al final del fichero seguimos leyendo y movindonos a la siguiente lnea (movenext).

www.company.com

Company LOGO

Obteniendo datos
El array $result->fields[] es generado por ADODB ante cada peticin de movenext(). Podemos obtener array asociativos o indexados por el nmero del campo.

www.company.com

Company LOGO

El Objeto ADOConnection
ADOConnection El objeto que realiza la conexin a la base de datos, ejecuta las sentencias SQL y tiene otro set de funciones para estandarizar el formato de sentencias SQL como la concatenacin de cadenas o formatos de fechas.

www.company.com

Company LOGO

Otras funciones especiales


$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.


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

www.company.com

Company LOGO

Adodb Ejemplo
<?php include("../../../adodb/adodb.inc.php"); // ruta relativa al include del adodb $db = NewADOConnection('mysql'); $db->Connect("localhost", "root", "", "hr"); $result = $db->Execute("SELECT * FROM jobs"); if ($result === false) die("failed"); while (!$result->EOF) { for ($i=0, $max=$result->FieldCount(); $i < $max; $i++) print $result->fields[$i].' '; $result->MoveNext(); print "<br>"; } ?>

www.company.com

Company LOGO

Conclusin

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.

www.company.com

Company LOGO

14

Practica
Construya una funcin para realizar una conexin a una base de datos en mysql, postgres o sybase. Incluya esta funcin para cada conexin que realice a la bd. Realice una consulta a la bd seccionada y despliegue su resultado en el navegador. De igual forma, realice, inserciones, actualizaciones y borrado en la bd seleccionada

www.company.com

Company LOGO

Documentacin

http://adodb.sourceforge.net/

www.company.com

Company LOGO

Gracias

www.company.com

S-ar putea să vă placă și