Curso PHP Advanced and Ajax 2012
Unidad II - Interacción con Bases de Datos 2012
PHP Interacción con BD - Repaso Acceso a Base de Datos
PHP Trabajar con Base de datos en PHP es muy fácil, sólo se necesita instalar la extensión de PHP correspondiente o utilizar una capa de abstracción o un ORM (configurarlo) Para trabajar con BD en PHP se poseen dos maneras generales: Como una capa de abstracción independiente del motor específico de base de datos utilizado. Ejemplo: PDO PHP Data Object Utilizando una extensión de PHP para la BD específica que se quiera utilizar (mysql,mysqli,oci8,mssql,pgsql,etc)
PDO PDO (PHP Data Objects) es una extensión nativa de PHP5, consiste en una interface uniforme para acceder a varias bases de datos PDO provee una capa de abstracción de acceso a bases de datos (BD), que permite al desarrollador abstraerse de la BD de una aplicación Si en alguna fase de desarrollo del proyecto se necesita cambiar de BD, esto no afectaría la lógica de la aplicación
PHP Hay extensiones de PHP para cada motor Algunos de los motores de BD soportados por PHP: MySQLi OCI8 Sybase PostgreSQL Informix MSSQL Firebire Mongo DB DB2 Couch DB etc
PHP Una aplicación Web con PHP que utiliza por detrás una BD debe realizar básicamente los siguientes pasos (pasos genéricos Siempre ocurren): Establecer una conexión con la BD Crear una sentencia SQL Ejecutar la sentencia SQL Procesar el resultado Terminar la conexión Siempre es conveniente tener un archivo de configuración con los parámetros de conexión
PHP Las conexiones debemos realizarlas en cada script en el que utilicemos o debamos hacer algún tipo de consulta En el curso se intentará probar la interacción de PHP con tres BD: PostgreSQL, MySQL, MongoDB
PHP Con PostgreSQL Manual de PHP de referencia a la extensión de PostgreSQL http://www.php.net/manual/es/book.pgsql.php
PHP Extensión pgsql
PHP PHP utiliza la extensión pgsql para conectarse con motores de BD PostgreSQL Podemos ver información sobre dicha extensión en nuestra instalación utilizando el comando phpinfo().
MySQL y PHP Referencia: http://www.php.net/manual/es/set.mysqlinfo.php Ing. Mauricio Merín - Curso PHP-Mod2-2012
MySQL y PHP Ing. Mauricio Merín - Curso PHP-Mod2-2012
Oracle y PHP Ing. Mauricio Merín - Curso PHP-Mod2-2012
Oracle y PHP http://php.net/manual/es/book.oci8.php Ing. Mauricio Merín - Curso PHP-Mod2-2012
Ejercicio Acceso a Base de Datos
Ejercicio de Investigación Hacer un script en PHP que haga lo siguiente Cree una BD en postgresql llamada pruebaejerclase5 Cree una tabla con tres campos: id: campo de tipo serial y que sea PK nombre: un campo que sea una cadena de 40 caracteres descripción: un campo que sea una cadena de 40 caracteres Inserte 40 registros en la tabla, los valores de los registros deben ser generados aleatoriamente, a excepción de la secuencia Visualice esos 40 registros insertados en el paso anterior en forma tabular Ing. Mauricio Merín - Curso PHP-Mod2-2012
Algunas consideraciones - PostgreSQL Database Cluster: Lo primero que se debe hacer es inicializar el database storage area, que es el lugar donde se van a almacenar los datos Database Cluster (SQL usa el termino Catalog Cluster): es una colección de BD que son manejadas por una instancia del servidor de BD postgresql en ejecución. Después de la inicialización (comando initdb), el database cluster contendrá una BD denominada postgres. Esta BD es la BD por defecto que utilizarán las utilidades, usuarios y las aplicaciones externas para conectarse. Se asume que esta BD existe Ing. Mauricio Merín - Curso PHP-Mod2-2012
Algunas consideraciones - PostgreSQL Al iniciar el cluster también se crean dos BD del sistema más template 0: Se usa como una plantilla virgen para replicar una BD. Esta nunca cambia después de la inicialización (initdb) template 1: En el template 1 se pueden agregar objetos y estos se copiarás posteriormente en la próxima creación de BD create database trabaja copiando una BD existente. Por defecto toma el template 1 si el usuario no le especifica otro template Ing. Mauricio Merín - Curso PHP-Mod2-2012
Algunas consideraciones - PostgreSQL Para hacer un script PHP que cree una BD tendría que conectarme a la BD postgres, hacer la consulta de DDL de creación y ejecutarla Ing. Mauricio Merín - Curso PHP-Mod2-2012
Taller 2012
Taller BD propuesta gd ModeloLógico Modelo Físico Ing. Mauricio Merín - Curso PHP-Mod2-2012
Taller Se tienen dos script en la página del curso: Un script de creación e inserción para MySQL Un script de creación e inserción para PostgreSQL Se debe crear la BD PostgreSQL utilizando el administrador PgAdmin III y ejecutar el script La BD Mysql estará en la máquina del profesor, que será utilizada como servidor. El script deberá acceder remotamente a la BD Ing. Mauricio Merín - Curso PHP-Mod2-2012
Taller Se pide hacer un script para ambas BD, que consulte las tablas en forma adecuada y muestre de manera tabular la siguiente información: producto_id nombre descripcion nombre_marca nombre_tipo Ing. Mauricio Merín - Curso PHP-Mod2-2012
Bibliografía 2012
Bibliografía http://articles.sitepoint.com/article/typing-versus-dynamic-typing Jansch,I., Guide to Enterprise PHP Development. php architect s. United States of America. 2008. Manual Oficial de PHP Doyle,M. Beginning PHP 5.3. Wrox. United States of America. 2010. http://www.fayerwayer.com/2010/02/facebook-aplica-ritmo-allenguaje-php-con-hiphop/ http://www.w3schools.com/sql/ Ing. Mauricio Merín - Curso PHP-Mod2-2012