php mysql adodb
Post on 05-Dec-2014
85 Views
Preview:
TRANSCRIPT
Company LOGO
www.company.com
Taller de PHPMySQL y 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.
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
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
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
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.
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
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
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
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
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.
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
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>";
}
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
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
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.
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
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
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.
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
Company LOGO
www.company.com
…Documentación
http://adodb.sourceforge.net/
Company LOGO
www.company.com
Gracias
top related