Tema: MAPEO OBJETO RELACIONAL (ORM) - ADODB



Documentos relacionados
Base de datos relacional

BASE DE DATOS RELACIONALES

QUÉ ES UNA BASE DE DATOS Y CUÁLES SON LOS PRINCIPALES TIPOS? EJEMPLOS: MYSQL, SQLSERVER, ORACLE, POSTGRESQL, INFORMIX (DV00204A)

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

Tema: GESTIÓN DE SESIONES EN PHP.

Curso de PHP con MySQL Gratis

Trabajos de Ampliación. Bases de datos NoSQL.

Programación Gambas 3 Prof: Mileti, P. Acceso a base de datos SQLite desde Gambas 3.

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

PHP Y BASES DE DATOS. Introducción a SQL

Introducción a los Sistemas de Gestión de Bases de Datos

BASES DE DATOS AVANZADAS Transacciones en MYSQL

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

Tablas y Campos Nuevos

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

Acceso a bases de datos en Perl

BrowserSQL 4 versión 2 - TUTORIAL

PUF del SAID. Las Preguntas de Uso Frecuentes (PUF) del Sistema Administrativo Integrado Descentralizado

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Lazarus Free Pascal Compiler

Modelos y Bases de Datos

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

5- Uso de sentencias avanzadas

6 - Recuperar algunos registros (where)

Bases de Datos: Structured Query Language (SQL)

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

Bases de datos relacionales y el modelo entidad-relación

*si tuvieron algún problema pueden verificar la documentación oficial Vamos a crear una BD llamada droid_login como lo muestra la siguiente imagen:

Departamento de Desarrollo Tecnológico. Sistema Administración de Compras y Control Financiero Descripción Código VB

Utilización del programa de Orabench Versión para Migración. Describir los pasos para la utilización del programa Orabench de Oracle.

TEMA 20: CONCEPTOS BÁSICOS DE SQL

MANUAL DE USUARIO DEL SISTEMA PARA EL REDACTOR

TEMA 6. ARQUITECTURA DE ADO.NET 6.1. INTRODUCCIÓN A ADO.NET

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

Curso Especialista Técnico Programador Web

Squipy v Introducción

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

SISTEMA DE ENCUESTAS CON PHP Y MYSQL

Lazarus Free Pascal Compiler

Base de datos I Facultad de Ingeniería. Escuela de computación.

Microsoft Access 2007 (Completo)

Formatos para prácticas de laboratorio

T12 Vistas y tablas temporales

Manejo de datos BLOB con PHP y MySQL

Instalación y configuración inicial del sistema SIU-Kolla Versión 3.0.0

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

Modulo 1 El lenguaje Java

Pestaña Prod/Serv Tipos de Configuración de Replica: Servidor: DB (Base de Datos): Botón de Conectar... 3

USANDO SQL. EN BASE DE Ooo.

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

LABORATORIO 9. Replicación de base de datos en SQL Server

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Desarrollo Web en Entorno Servidor

Un Navegador es un programa que nos conecta a Internet y nos permite organizar nuestro

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

Conexión a Bases de Datos en PHP

Prueba de Concepto, Informes XBRL vs. SGBDR.

Restricciones (constraints) FOREIGN KEY

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

ESCUELA POLITÉCNICA NACIONAL 28 DE OCTUBRE, 2015 ORTIZ JÁCOME LEONARDO JOSÉ

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA

Apuntes de la Unidad 1 de Base de Datos

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

MANUAL DE USUARIO. Sistema de Administración de Proyectos de Vinculación con la Colectividad (SAPVC) MANUAL DE USUARIO DOCENTE

Base de datos I Facultad de Ingeniería. Escuela de computación.

ADMINISTRACIÓN DE BASE DE DATOS

Elementos de Microsoft Word

SQL (Structured Query Language)

Qué es una base de datos?

documentación Especificaciones Técnicas

Configuración de DNS seguros

BROWSERSQL VERSIÓN 3.1 TUTORIAL

Guía de Laboratorio Base de Datos I.

Curso de Android con Java

Capítulo 4 Implementación

XAJAX: una librería de AJAX para PHP (parte 1)

Guía práctica de introducción básica a JDBC

Base de datos en Excel

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

Base de Datos Práctica 1.

Práctica 3. Consultas SQL

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Complejo Deportivo UCA. República Saharaui s/n Puerto Real (Cádiz) Tel Fax

Acceso a bases de datos MySQL con PHP

INSTALACIÓN DE JOOMLA EN UN SERVIDOR LOCAL

CESAR BUSTAMANTE

PRACTICA 1 PHP HOLA MUNDO. El comando de PHP para imprimir dentro de la página se llama echo. Nuestro programa "Hola Mundo" será entonces:

Paso del E-R a tablas

1. Conocer los fundamentos para la creación de Arreglos y Matrices en PHP. 2. Gestionar el contenido de Arreglos y Matrices en PHP.

Ayuda Portal WiFi para MAC

Análisis de esquemas XML [1]

Software de Comunicaciones (2) Manual de Usuario Consola

Transcripción:

2 PHP

PHP. Guía 5 3 Facultad: Ingeniería Escuela: Computación Asignatura: PHP Tema: MAPEO OBJETO RELACIONAL (ORM) - ADODB Contenidos En esta práctica se abordan una serie conceptos y scripts en PHP para poner en práctica un ORM utilizando la librería ADODB para php5, el cual nos permite realizar las actividades de insertar, modificar y eliminar (CRUD acrónimo) sin importar el gestor de base de datos. Objetivo Específico Desarrollar scripts en PHP utilizando el enfoque de programación orientada a objetos. Crear scripts en PHP para realizar múltiples conexiones a diferentes bases de datos. Crear scripts en PHP utilizando la librería ADODB para realizar las operaciones de insertar, modificar, eliminar y consultar datos en un DBMS. Materiales y Equipo Editor de Texto Navegador Web Firefox o Google Chrome WampServer

4 PHP, Guía 5 Introducción Teórica Qué es ORM? Es una técnica de programación que nos permite vincular los objetos usados en nuestro modelo de la aplicación con una base de datos relacional. El principal problema surge porque hoy en día, prácticamente todas las aplicaciones están diseñadas para usar la Orientación a Objetos (POO), mientras que las bases de datos más extendidas son del tipo relacional. Las bases de datos relacionales solo permiten guardar tipos de datos primitivos (enteros, cadenas de texto, etc ) por lo que no se puede guardar de forma directa los objetos de la aplicación en las tablas, sino que estos se deben de convertir antes en registros, que por lo general afectan a varias tablas. En el momento de volver a recuperar los datos, hay que hacer el proceso contrario, se deben convertir los registros en objetos. Es entonces cuando ORM cobra importancia, ya que se encarga de forma automática de convertir los objetos en registros y viceversa, simulando así tener una base de datos orientada a objetos. Por qué usar ORM? 1. Rapidez de desarrollo. La mayoría de las herramientas ORM disponibles, permiten la creación del modelo a través del esquema de la base de datos, es decir, tú creas la base de datos y la herramienta automáticamente lee el esquema de tablas y relaciones y crea un modelo ajustado. 2. Abstracción del motor a base de datos. Todo sistema ORM que se precie debe de generar de forma automática las consultas a la base de datos para convertir los registros en objetos (y viceversa) y éstas deben poder adaptarse a los distintos proveedores (MySql, Oracle, PostreSQL, etc ). Esto permitirá a los desarrolladores tener una preocupación menos a la hora de comenzar un proyecto, ya que tienen la seguridad de que un cambio drástico en el proveedor de base de datos, no impactará para nada en el tiempo de vida del proyecto. 3. Lenguaje propio para consultas a la base de datos. Otra característica importante (de hecho seguramente la que más) es la exposición de clases y métodos que nos dan las herramientas ORM para poder extraer los datos de la forma que necesitemos (filtros, ordenaciones, agrupaciones).

PHP. Guía 5 5 Qué es ADODB? AdoDB es una librería de conexión a base de datos en el lenguaje PHP. Mediante el uso de AdoDB se consigue un uso de funciones estándar para acceso a la funcionalidad de las bases de datos soportadas por AdoDB. Actualmente soporta MySQL, Oracle, Microsoft SQL Server, Sybase, Sybase SQL Anywhere, Informix, PostgreSQL, FrontBase, SQLite, Interbase (versiones de Firebird y Borland), Foxpro, Access, ADO, DB2, SAP DB and ODBC. La funcionalidad básica de operaciones relacionales de base de datos como son Select, Insert y Update puede fácilmente ser usadas mediante esta librería. Entre sus características más avanzadas tenemos: paginación de resultados, gestión de transacciones y monitorización de rendimiento. Funciones a utilizar Nombre Función NewADOConnection Connect AutoExecute Explicacion Esta función permite poder cargar las funciones que brinda php para cualquier gestor de base de datos. $obj_db_mysql = NewADOConnection('mysqli'); Para toda conexión a un servidor de base de datos, necesitamos 4 información básica: dirección del servidor, usuario, contraseña y nombre de la base de datos o instancia. Por tanto la función Connect recibe esos parámetros para realizar esa conexión. $conectar_mysql = $obj_db_mysql- >Connect([SERVIDOR:PUERTO], [USUARIO],[PASSWORD], [NOMBRE_BD]); La librería ADODB nos brinda una función más fácil para realizar las operaciones DML de Insertar y Modificar. $bandera_insertar = $obj_db_mysql- >AutoExecute([NOMBRE_TABLA],[ARRAY_ASOCIATIVO_ DATOS], 'INSERT'); $bandera_modificar = $obj_db_mysql- >AutoExecute([NOMBRE_TABLA], [ARRAY_ASOCIATIVO_DATOS], 'UPDATE', [CONDICIONES]);

6 PHP, Guía 5 El ARRAY_ASOCIATIVOS_DATOS debe estar compuesto por el nombre del campo de la tabla a insertar o modificar y agregar el valor. Execute ErrorMsg GetMenu RecordCount Función que nos permite ejecutar cualquier tipo de instrucción SQL al gestor de base de datos. $consulta_general = 'select * from persona'; $record_consulta=$obj_db_mysql- >Execute($consulta_general); Función que muestra el error que devuelve el DBMS posterior a la ejecución de cualquier operación tanto DDL o DML. Función que permite crear un combo box a partir de una consulta SQL. $consulta_general = 'select apellidos,idpersona from persona'; $record_consulta = $obj_db_mysql- >Execute($consulta_general); Echo $record_consulta- >GetMenu(NOMBRE_COMBO,VALOR_SELECCIONADO, PRIMER_ELEMENTO,MULTIPLE,TAMAÑO,ELEMENTOS_A DICIONALES); 1. NOMBRE_COMBO (string): Nombre del combo a crear. 2. VALOR_SELECCIONADO (string): Sera el valor que por default se va a seleccionar al momento de crear el combo. 3. PRIMER_ ELEMENTO (boolean): Si se coloca el valor como true, el primer elemento del combo será un valor en blanco de lo contrario el primer elemento será el que muestre la consulta. Por default es true. 4. MULTIPLE (boolean): Permite crear un listbox o un combo box. Por default es false por lo tanto creara un combo box. 5. TAMAÑO (integer): Un valor entero del tamaño de lista. 6. ELEMENTOS_ADICIONALES: Se pueden agregar estilos css, alguna función en javascript u algún otro atributo a la etiquete <select>. Permite saber el total de registros que arrojara una consulta posterior a su ejecución:

PHP. Guía 5 7 $consulta_general = 'select * from persona'; $record_consulta = $obj_db_mysql- >Execute($consulta_general); $total_registros = $record_consulta->recordcount(); Instalación de ADODB Primero debemos descargar la librería de la siguiente dirección: http://adodb.sourceforge.net/#download Ejercicios Prácticos 1. Abrir conexión y cerrar para gestores como: MySql, PostgreSQL y Oracle con ADODB. Antes de ejecutar el siguiente código, verifique que las extensiones: php_oci8_11g.dll y extension=php_pgsql.dll estén habilitadas en el archivo PHP.ini $obj_db_mysql $conectar_mysql = NewADOConnection('mysqli'); = @$obj_db_mysql->connect("localhost:3306", "root", "", "db_guia10"); echo "<font color='green'><b>se CONECTA PERFECTAMENTE A MYSQL</b></font><br>"; echo "<font color='red'><b>no SE CONECTA A MYSQL</b></font><br>"; $obj_db_pgsql $conectar_pgsql = NewADOConnection('postgres9'); = @$obj_db_pgsql->connect("localhost:5432", "postgres", "clave", "db_guia"); if($conectar_pgsql): echo "<font color='green'><b>se CONECTA PERFECTAMENTE A POSTGRESQL 9.0</b></font><br>"; echo "<font color='red'><b>no SE CONECTA A POSTGRESQL 9.0</b></font><br>"; $obj_db_oracle $conectar_oracle "orcl"); = NewADOConnection('oci8'); = @$obj_db_oracle->connect('localhost:1521', "usr_guia10", "clave", if($conectar_oracle):

8 PHP, Guía 5 echo "<font color='green'><b>se CONECTA PERFECTAMENTE A ORACLE 11G</b></font><br>"; echo "<font color='red'><b>no SE CONECTA A ORACLE 11G</b></font><br>"; 2. Ingresar un nuevo registro. $obj_db_mysql $conectar_mysql = NewADOConnection('mysqli'); = @$obj_db_mysql->connect("localhost:3306", "root", "", "db_guia10"); $datos_persona['dui'] = '036562501'; $datos_persona['nit'] = '06141112861283'; $datos_persona['nombres'] = 'edwin leonardo'; $datos_persona['apellidos'] = 'figueroa huezo'; $datos_persona['sexo'] = 'm'; $datos_persona['fecha_nacimiento'] = '1986-12-11'; $datos_persona['edad'] = '27'; $bandera_insertar = $obj_db_mysql->autoexecute('persona', $datos_persona, 'INSERT'); if($bandera_insertar): echo "<font color='green'><b>se INGRESO CORRECTAMENTE LA INFORMACION</b></font><br>"; echo "<font color='red'><b>error AL INSERTAR: ".$obj_db_mysql- echo "<font color='red'><b>error CONEXION: ".$obj_db_mysql- Intente de nuevo ejecutar el código anterior y verifique los errores que se muestran en pantalla. Verifique el nuevo registro de la aplicación de PHPMyAdmin. 3. Modificar un registro. $obj_db_mysql = NewADOConnection('mysqli'); $conectar_mysql = @$obj_db_mysql->connect("localhost:3306", "root", "", "db_guia10");

PHP. Guía 5 9 $datos_persona['dui'] = '036562500'; $datos_persona['fecha_nacimiento'] = '1986-01-11'; $datos_persona['edad'] = '28'; $bandera_modificar = $obj_db_mysql->autoexecute('persona', $datos_persona, 'UPDATE', 'idpersona = 1'); if($bandera_modificar): echo "<font color='green'><b>se MODIFICO CORRECTAMENTE LA INFORMACION</b></font><br>"; echo "<font color='red'><b>error AL MODIFICAR: ".$obj_db_mysql- echo "<font color='red'><b>error CONEXION: ".$obj_db_mysql- Verifique el nuevo registro de la aplicación de PHPMyAdmin. 4. Eliminar un registro. $obj_db_mysql $conectar_mysql = NewADOConnection('mysqli'); = @$obj_db_mysql->connect("localhost:3306", "root", "", "db_guia10"); $consulta_eliminar $bandera_eliminar = 'delete from persona where idpersona = 1'; = $obj_db_mysql->execute($consulta_eliminar); if($bandera_eliminar): echo "<font color='green'><b>se ELIMINO CORRECTAMENTE LA INFORMACION</b></font><br>"; echo "<font color='red'><b>error AL ELIMINAR: ".$obj_db_mysql- echo "<font color='red'><b>error CONEXION: ".$obj_db_mysql-

10 PHP, Guía 5 5. Consultar una tabla. $obj_db_mysql $conectar_mysql = NewADOConnection('mysqli'); = @$obj_db_mysql->connect("localhost:3306", "root", "", "db_guia10"); $salida_final $consulta_general $record_consulta $total_registros = (string) ''; = 'select * from persona'; = $obj_db_mysql->execute($consulta_general); = $record_consulta->recordcount(); if($record_consulta): while (!$record_consulta->eof): $idpersona = $record_consulta->fields['idpersona']; $dui = $record_consulta->fields['dui']; $nit = $record_consulta->fields['nit']; $nombres = $record_consulta->fields['nombres']; $apellidos = $record_consulta->fields['apellidos']; $sexo = $record_consulta->fields['sexo']; $fecha_nacimiento = $record_consulta->fields['fecha_nacimiento']; $edad = $record_consulta->fields['edad']; $salida = '<tr>'. '<td>'.$idpersona.'</td>'. '<td>'.$dui.'</td>'. '<td>'.$nit.'</td>'. '<td>'.$nombres.'</td>'. '<td>'.$apellidos.'</td>'. '<td>'.$sexo.'</td>'. '<td>'.$fecha_nacimiento.'</td>'. '<td>'.$edad.' años</td>'. '</tr>'; $salida_final = $salida.$salida_final; $record_consulta->movenext(); endwhile; echo '<center><table border="1">'. '<tr style="background-color:green; color:white; font-weight:bold">'. '<td>idpersona</td>'. '<td>dui</td>'. '<td>nit</td>'. '<td>nombres</td>'. '<td>apellidos</td>'. '<td>sexo</td>'. '<td>fecha NACIMIENTO</td>'. '<td>edad</td>'. '</tr>'. $salida_final. '</table></center>';

PHP. Guía 5 11 echo "TOTAL REGISTROS: ".$total_registros." PERSONAS<br>"; echo "<font color='red'><b>error AL CONSULTA LA TABLA PERSONA: ".$obj_db_mysql- echo "<font color='red'><b>error CONEXION: ".$obj_db_mysql- 6. Crear un combo box con datos consultados en la base de datos. $obj_db_mysql $conectar_mysql = NewADOConnection('mysqli'); = @$obj_db_mysql->connect("localhost:3306", "root", "", "db_guia10"); $consulta_general = 'select apellidos,idpersona from persona'; $record_consulta = $obj_db_mysql->execute($consulta_general); print $record_consulta->getmenu('cmb_info_persona'); echo "<font color='red'><b>no SE CONECTA A POSTGRESQL 9.0</b></font><br>"; Análisis de Resultados 1. Crear las respectivas pantallas para realizar las operaciones DML (Insertar, Modificar y Eliminar) para la tabla persona.

12 PHP, Guía 5 Anexos CREATE SCHEMA IF NOT EXISTS `db_guia10` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; USE `db_guia10` ; CREATE TABLE IF NOT EXISTS `persona` ( `idpersona` int(11) NOT NULL AUTO_INCREMENT, `dui` char(9) COLLATE utf8_spanish_ci NOT NULL, `nit` char(14) COLLATE utf8_spanish_ci NOT NULL, `nombres` varchar(250) COLLATE utf8_spanish_ci NOT NULL, `apellidos` varchar(250) COLLATE utf8_spanish_ci NOT NULL, `sexo` char(1) COLLATE utf8_spanish_ci NOT NULL, `fecha_nacimiento` date NOT NULL, edad int (4) NOT NULL, PRIMARY KEY (`idpersona`), UNIQUE KEY `dui` (`dui`), UNIQUE KEY `nit` (`nit`) ) ENGINE= MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=1