CESAR BUSTAMANTE cbust@librosdigitales.net



Documentos relacionados
Facultad de Ingeniería UNMdP

Tema: MAPEO OBJETO RELACIONAL (ORM) - ADODB

Introducción al desarrollo web (idesweb) - 3 a ed.

Tutorial de Unity 3D Tema 52 Bases de Datos. Tutorial de Unity 3D. Bases de Datos

myappgen Usted Construye la aplicación mientras la ejecuta

Curso PHP Advanced and Ajax

PHP y Acceso a Datos

JDBC. Una mini-introducci. introducción

BUENOS DIAS! Ing. Germán Ziegler

Base de Datos JDBC. Unidad: 1 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

INSTALACIÓN DE ORACLE 10G ENTEPRISE PARA USO CON PHP MEDIANTE OCI8

PHP Hypertext PreProcessor

Introducción a PostgreSQL con PHP

PHP 5.6 Desarrollar un sitio web dinámico e interactivo

Lazarus Free Pascal Compiler

DOCUMENTACIÓN DE POWER BUILDER 11. CONSULTA DINAMICA Las consultas dinámicas se realizan cuando power builder no soporta una consulta SQL.

PHP Y BASES DE DATOS. Introducción a SQL

BASES DE DATOS AVANZADAS Transacciones en MYSQL

REQUISITOS DEL SISTEMA. Software Servidor. Cliente. Hardware Servidor. Cliente

TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS

De uno a uno : Ejemplo de una llave primaria a otra llave primaria De uno a muchos : Ejemplo de una llave primaria a una Regular o Foránea.

Acceso a bases de datos en Perl

Formatos para prácticas de laboratorio

Migración de ESET Remote Administrator v2.x a v3.x

Curso de PHP con MySQL Gratis

vmysql Requisitos Previos Conexión con el servidor vmysql 1/5

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

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

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

ADENDA No DE JUNIO DE 2014

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

myappgen Usted Construye la aplicación mientras la ejecuta

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Visión General GXplorer. Última actualización: 2009

PHP Perfect SQL v1.0 (SQL perfectas en PHP)

APACHE 2. Pablo Allietti Mérida Venezuela Octubre WALC Merida Venezuela

Conectar Flash con Access usando MDM Zinc

Ejercicios - Persistencia en Android: ficheros y SQLite

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Curso Online de Microsoft

Diplomado Programación Web con PHP, MySQL 5.0, Apache y Ajax

7- PHP y consultas MySQL

ing Solution La forma más efectiva de llegar a sus clientes.

- Power Builder - Conexión ODBC DataWindows

Práctica 02. Formularios

NOTA:Necesario verificar el nombre de nuestro Servidor-Equipo en donde está nuestro sistema gestor de base de datos.

Acceso a BD desde Java. JDBC

Software de Comunicaciones (2) Manual de Usuario Consola

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

Manual de Instalación del sistema administrativo PremiumSoft Extended 7

1. Bases de datos desde VB.Net 1.1 Introducción. Desde Vb Net 2005 se puede acceder a las siguientes bases de datos, utilizando las clases adecuadas.

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

Oracle básico (IV): Programación en PL/SQL

INSTRUCCIONES PARA INSTALAR EL NAVIERO MAX EN UNA PC CON WINDOWS XP, XP PROF, VISTA.

PROCEDIMIENTO DE ACCESO A DB2 AS/400 MEDIANTE SQL SERVER

Manual del programador

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Soft4Web. Embedded Web Server + Program 11.14

Desarrollo de Servicios Web con JBuilder

Conexión a Bases de Datos en PHP

MÓDULO OPTATIVO e Bussines

Introducción a JDBC - Base de datos con Java

Manual de Instalación SICO MANUAL DE INSTALACION SICO SOFTWARE DE GESTION BASE DE DATOS POSTGRESQL

BASE DE DATOS RELACIONALES

Microsoft SQL Server 2005

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

Lazarus Free Pascal Compiler

Guía de Instalación Proscai

Base de datos relacional

Instructivo para la sincronización de servidores Intellect

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

U.E JUAN DE VELASCO CREAR DATOS EN SQL

SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE SERVICIO Y GESTION EMPRESARIAL CESGE RECUPERACION APRENDIZ BRENDA MARCELA TOVAR TORRES

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

Manual Instalación y Operación Cliente Comunicaciones. Manual de Instalación, Configuración y Uso del Cliente de comunicaciones

Desarrollo de aplicaciones web con PHP

SQL dinámico en Transact SQL

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

Capitulo 5. Implementación del sistema MDM

MAESTRO DE PHP PHP NIVEL 1

Curso de PHP. Acceso a bases de datos MySQL en PHP

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Como instalar Zeos Lib y no morir en el intento. Un Tutorial.

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

INSTRUCTIVO 003/2012

TROUBLESHOOTING: ViewTrac & ViewPrint

WEB SERVICES. Manual técnico para desarrollador

6.- Este software se instalara como una versión Demo con una duración de 25 días de uso. En el código de validación, se dejara la palabra Demo.

Procesamiento y Optimización de consultas Material Preliminar en preparación

Ingeniería del Software Arquitectura Física en 3 niveles

BROWSERSQL VERSIÓN 3.1 TUTORIAL

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL

Elastix Web Services (WSDL) Manual de Usuario

Dossier de prácticas

Transcripción:

PHP POO PDO CESAR BUSTAMANTE cbust@librosdigitales.net

Temas a desarrollar Definicion PDO Implementacion AJAX Implementacion Ejercicios

PDO Definicion PDO (PHP Data Objects) u Objetos de Datos de PHP. PDO es un driver de acceso a diferentes bases de datos. PDO esta compilado en C/C++, por los que ofrece mayor rapidez Viene incorporado en PHP5 y desde d PHP 5.1 viene enabled por df defecto. PDO está completamente orientado a objetos PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase PDO_FIREBIRD Firebird/Interbase 6 PDO_IBM IBM DB2 PDO_INFORMIX IBM Informix Dynamic Server PDO_MYSQL MySQL 3.x/4.x/5.x PDO_OCI Oracle Call Interface PDO_ODBC ODBC v3 (IBM DB2, unixodbc and win32 ODBC) PDO_PGSQL PostgreSQL PDO_SQLITE SQLite 3 and SQLite 2 PDO_4D 4D

PDO Activacion 1. Revisar php.ini, debe estar activo: extension=php_pdo.dll extension=php_pdo_mysql.dll 2. Sino aparece, buscar PDO: http://pecl.php.net/package search.php?pkg_name=pdo 3. Tambien puede ededescargarse arse todos los PDO desde http://snaps.php.net/win32/ descargar: php5.2 win32 latest.zip 4. Mas informacion en: http://pecl.php.net/package changelog.php?package=pdo Activar pdo en Linux: ===================== extension=pdo.so extension=pdo_mysql.so extension=pdo_sqlite.so

PDO Conexión a la BD Sin usar PDO: MySQL: PostgreSQL: $conexion = mysql_connect($host, $usr, $pwd); mysql_select_db($db, l $conexion); $conexion =pg_connect( host=$host dbname=$db user=$usr password=$pwd ); Con PDO. MySQL: $conexion = new PDO( mysql:host=$host; dbname=$db, $usr, $pwd); PostgreSQL: $conexion = new PDO( pgsql:host=$host; t dbname=$db, $usr, $pwd); Cambia solo el nombre del driver de la base de datos

PDO Implementacion Ejecutandouna una consulta SELECT con PDO. $conexion = new PDO( mysql:host=$host; dbname=$db, $usuario, $password); $sql = SELECT * FROM tabla ORDER by id ; $query = $conexion >query($sql); while( hl $row = $query >fetch(pdo::fetch_assoc) )){){ echo $row;

PDO Excepciones try { $db = new PDO('mysql:dbname=testdb;host=localhost', $user, $pass); $db >setattribute(pdo::attr_errmode, PDO::ERRMODE_EXCEPTION); // Cerramos la conexion $db = null; catch( PDOException $e ) { echo "Error de conexion: ". $e >getmessage(); Si se pasa como atributo PDO::ERRMODE_EXCEPTION lanzara una excepcion cuando ocurra un error.

PDO Consulta con parametros try { $db = new PDO('mysql:dbname=testdb;host=localhost', $user, $pass); $db >setattribute(pdo::attr_errmode, PDO::ERRMODE_EXCEPTION); // Preparamos la Consulta $comando = $db >prepare("select * FROM Clientes WHERE Cliente LIKE?"); // Obtenemos el comando desde GET $cliente = '%'. $_GET['Cliente']. '%'; $comando >execute( array( $cliente ) ); while( $row = $comando >fetch() ) { var_dump( $row ); // Imprimimos resultados // Cerramos la conexion $comando = null; $db = null; catch( PDOException $e ) { echo "Error de conexión: ". $e >getmessage(); Ejecutar comandos SQL, es mas sencillo, ya que automáticamente las variables son protegidas contra ataques de SQL Inyection. Aquí si cambia un poco la forma, ya que usamos lo que se le conoce como Prepared Statements o Comandos Preparados marcadores o "placeholders", esto es el signo de interrogación en el WHERE "?".?. Estos marcadores es lo que se va a reemplazar por el valor que se asigne al usar execute Como podemos ver, podemos usar directamente el valor de nuestro $_GET sin temor a que sea una cadena que pueda perjudicarnos, ya que el di driver automáticamente se encarga de analizar y enviar la cadena como un string.

PDO Otro ejemplo try { $db = new PDO('mysql:dbname=testdb;host=localhost', $user, $pass); $db >setattribute(pdo::attr_errmode, PDO::ERRMODE_EXCEPTION); // Preparamos el comando SQL $comando = $db >prepare("update Cliente SET mombre=? WHERE idcliente=?"); // Obtenemos datos desde GET $nom = '%'. $_GET[ nombre']. '%'; $id = '%'. $_GET[ idcliente']. '%'; marcadores $comando >execute( array( $nom,$id )); // Cerramos la conexion $comando = null; $db = null; catch( PDOException $e ) { echo "Error de conexión: ". $e >getmessage(); Transferimos los valores a los marcadores

PDO Otro forma try { $db = new PDO('mysql:dbname=testdb;host=localhost', $user, $pass); $db >setattribute(pdo::attr_errmode, PDO::ERRMODE_EXCEPTION); $nom = $_POST[ nombre']; $id = $_POST['id']; $actualiza = $db >prepare('update cliente SET nombre = :nom WHERE idcliente= :id'); $actualiza >bindparam(':nom', $nom); $actualiza >bindparam(':id', $id); $actualiza >execute(); marcadores // Cerramos la conexión $db = null; Transferimos los valores catch( PDOException $e ) { a los marcadores echo "Error de conexión: ". $e >getmessage();

Práctica