PHP Mysql Adodb

22
Company LOGO www.company.com Taller de PHP MySQL y Adodb

Transcript of PHP Mysql Adodb

Page 1: PHP Mysql Adodb

Company LOGO

www.company.com

Taller de PHPMySQL y Adodb

Page 2: PHP Mysql Adodb

Company LOGO

www.company.com

Conceptos básicos e Introducción

PHP está especialmente diseñado para la creación de sitios webs dinámicos. Para crear estos sitios normalmente se utiliza algún tipo de base de datos desde donde obtenemos la información que queremos mostrar, ya sean noticias, preguntas y respuestas de un foro u otro tipo de información dinámica.

Page 3: PHP Mysql Adodb

Company LOGO

www.company.com

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 también los parámetros de cada función son diferentes.

Conceptos básicos e Introducción

Page 4: PHP Mysql Adodb

Company LOGO

www.company.com

Una librería de abstracción de los datos como ADODB es lo que se necesita si desea asegurar en gran medida la portabilidad de su aplicación. Provee una serie de funciones comunes para comunicarse con las distintas bases de datos.

Conceptos básicos e Introducción

Page 5: PHP Mysql Adodb

Company LOGO

www.company.com

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.

Conceptos básicos e Introducción

Page 6: PHP Mysql Adodb

Company LOGO

www.company.com

Conectando a la base de datos

Ejemplo MySQL

La base de datos usada con más frecuencia en PHP es MySQL, entonces es posible que le resulte familiar el siguiente código. Conectamos al server MySQL en localhost, a la base de datos – HR -, y ejecutamos una sentencia SQL. El resultado es impreso en pantalla, una línea por cada fila obtenida.

Page 7: PHP Mysql Adodb

Company LOGO

www.company.com

<?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>";}

?>

Conectando a la base de datos

Page 8: PHP Mysql Adodb

Company LOGO

www.company.com

//paso a paso con Adodb

//ruta relativa al adodb

include("../../../adodb/adodb.inc.php");

$db = NewADOConnection('mysql');

$db->Connect("localhost", "root", "", "hr");

Conectando a la base de datos

Page 9: PHP Mysql Adodb

Company LOGO

www.company.com

La conexión puede parecer algo más complicada que en MySQL pero se explica en que ADODB es totalmente orientado a objetos.

Conectando a la base de datos

Page 10: PHP Mysql Adodb

Company LOGO

www.company.com

Para ahorrar memoria solo se carga las funciones específicas de la base de datos que vamos a utilizar. Cada driver tiene un archivo distinto que se carga mediante un include automáticamente.

Una vez cargado el driver que vamos a utilizar mediante la función NewADOConnection() nos conectamos a la base de datos usando $db->Connect().

Conectando a la base de datos

Page 11: PHP Mysql Adodb

Company LOGO

www.company.com

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 función Execute(). Esta función devuelve un objeto "recordset" si la ejecución fue correcta o un "false" si hubo algún error.

Page 12: PHP Mysql Adodb

Company LOGO

www.company.com

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

Ejecutando SQL

Page 13: PHP Mysql Adodb

Company LOGO

www.company.com

Obteniendo datos

Obteniendo datos

while (!$result->EOF)

{

for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)

print $result->fields[$i].' '; $result->MoveNext();

print "<br>";

}

Page 14: PHP Mysql Adodb

Company LOGO

www.company.com

El proceso para obtener datos es como el proceso para leer desde un fichero. Para cada línea observamos si hemos llegado al final del fichero (EOF). Mientras no lleguemos al final del fichero seguimos leyendo y moviéndonos a la siguiente línea (movenext).

Obteniendo datos

Page 15: PHP Mysql Adodb

Company LOGO

www.company.com

El array $result->fields[] es generado por ADODB ante cada petición de movenext(). Podemos obtener array asociativos o indexados por el número del campo.

Obteniendo datos

Page 16: PHP Mysql Adodb

Company LOGO

www.company.com

El Objeto ADOConnection

ADOConnection

El objeto que realiza la conexión a la base de datos, ejecuta las sentencias SQL y tiene otro set de funciones para estandarizar el formato de sentencias SQL como la concatenación de cadenas o formatos de fechas.

Page 17: PHP Mysql Adodb

Company LOGO

www.company.com

$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

Otras funciones especiales

Page 18: PHP Mysql Adodb

Company LOGO

www.company.com

<?phpinclude("../../../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>"; }

?>

Adodb Ejemplo

Page 19: PHP Mysql Adodb

Company LOGO

www.company.com

Conclusión

ADODB es lo suficientemente robusto y completo para casi cualquier aplicación. Está siendo actualizado permanentemente y tiene muchos seguidores por lo que es una muy buena opción.

Page 20: PHP Mysql Adodb

Company LOGO

www.company.com

Practica

Construya una función para realizar una conexión a una base de datos en mysql, postgres o sybase.

Incluya esta función para cada conexión 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

14

Page 21: PHP Mysql Adodb

Company LOGO

www.company.com

…Documentación

http://adodb.sourceforge.net/

Page 22: PHP Mysql Adodb

Company LOGO

www.company.com

Gracias