Está en la página 1de 36

Computación en el Servidor Web

(Máster Universitario en Ingeniería del Software y Sistemas Informáticos)

Javier Cubo

TEMA 3
Acceso a BD desde PHP
En esta clase…

► Indicaciones para el tema


► Introducción
► El lenguaje SQL
► Acceder a la BD desde PHP
► Ejemplos
► Practicar

Computación en el Servidor Web - Javier Cubo 2


Esquema

Computación en el Servidor Web - Javier Cubo 3


¿Cómo estudiar este tema?
§ Material de estudio:
• Texto del tema en los apartados 3.2 y 3.3

• Manual indicado en el apartado 3.4

Computación en el Servidor Web - Javier Cubo 4


¿Cómo estudiar este tema?
§ Lección magistral
• Diseño de una BD para carrito de la compra

• Usa Modelo Entidad - Relación

§ Material adicional:
• Lenguaje SQL

• Diseño y uso de BD

• PHP Data Object: Manejador general para todas las BD

Computación en el Servidor Web - Javier Cubo 5


Introducción
Características MariaDB (similares a MySQL)
§ Sistema de administración de BD

§ Ventajas respecto a otros sistemas:


• Licencia pública

• Se descarga con licencia GPL

ü Se instala en tantos equipos como quieras

ü Uso ilimitado

ü Posibilidad de modificación

ü Puedes distribuirlo

Computación en el Servidor Web - Javier Cubo 6


Introducción
Características MariaDB
§ Soporta el estándar SQL

§ Es cliente-servidor
§ Disponible para más multitud de plataformas

§ MySQL comprado por Oracle y apareció MariaDB (fork MySQL)


§ Diferencias MariaDB vs MySQL
• https://mariadb.com/kb/es/mariadb-versus-mysql-features/

§ Compatibilidad / incompatibilidad MariaDB – MySQL


§ https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-
compatibility/

Computación en el Servidor Web - Javier Cubo 7


Introducción
Características MariaDB vs MySQL
§ Desarrollo de MariaDB más abierto

§ MariaDB ha ganado popularidad

§ Compatible y fácil de migrar

§ Migrar de MySQL a MariaDB después de 2015 puede ser


complicado

§ Más motores de almacenamiento

§ Mayor rendimiento

§ Más carácterísticas de vanguardia


§ La seguridad es más rápida y transparente

§ Soporte de MySQL por parte de Oracle incierto


Computación en el Servidor Web - Javier Cubo 8
El lenguaje SQL
Introducción
§ Estándar de acceso a BD

§ Conjunto reducido (pero potente) de sentencias


• Administrar la BD

• Acceder y manipular los datos

Computación en el Servidor Web - Javier Cubo 9


El lenguaje SQL
Repaso de sentencias SQL
§ Conjunto más amplio en el tema

§ Crear BD

§ Recordaremos las más usuales en este contexto


• Selección de datos

• Inserción de datos

• Modificación
• Borrado

Computación en el Servidor Web - Javier Cubo 10


El lenguaje SQL
Selección de datos con SQL
§ lista_de_columnas

§ lista_de_tablas
• Producto cartesiano, reunión natural

§ lista_de_condiciones
• Alias, tabla.campo

§ campos_para_ordenar
• Se hace al final

• Sobre los registros de la consulta

• El campo por el que se ordena debe estar en el SELECT

Computación en el Servidor Web - Javier Cubo 11


El lenguaje SQL
Inserción de datos con SQL
§ Lista de columnas o nada

§ Indicar valores según el tipo de la columna

Computación en el Servidor Web - Javier Cubo 12


El lenguaje SQL
Borrar datos con SQL
§ Si no ponemos condición, se borran todos los registros

§ Borrado habitual (selectivo) por clave primaria o condición

Computación en el Servidor Web - Javier Cubo 13


Acceder a la BD MariaDB desde PHP
Introducción
§ PHP soporta diferentes motores de BD (Sistemas de Gestión de
BD, SGBD)
§ Antes de PHP 5 extensión concreta para cada una

§ PHP 5 introduce una API común para todos los SGBD


• PDO: PHP Data Objects

• Reduce la complejidad para el programador

• Mantiene compatibilidad con extensiones particulares

§ Extensiones nativas: más rápidas, más características


§ PDO: portabilidad y consistencia

Computación en el Servidor Web - Javier Cubo 14


Acceder a la BD MariaDB desde PHP
Introducción
§ En esta asignatura vamos a trabajar con MariaDB
• Libre

• Instalado en XAMPP

• Compatible con MariaDB:


http://www.phpcentral.com/pregunta/506/conectar-base-de-
datos-mariadb-con-php

à Utilizamos MySQLi
§ En el manual de referencia podéis encontrar la opción PDO
• A partir de la pág. 26

Computación en el Servidor Web - Javier Cubo 15


Acceder a la BD MariaDB desde PHP
Introducción
§ Para conectarnos con una BD desde PHP tendremos que:
• Establecer la conexión

• Crear la sentencia que queremos ejecutar

• Mandar a la BD la sentencia (ejecutar)

• Procesar el resultado

• Cerrar la conexión

§ Dos modos de trabajo


• Procedimental

• Orientado a objetos (clase mysqli)

Computación en el Servidor Web - Javier Cubo 16


Acceder a la BD MariaDB desde PHP
La clase mysqli: propiedades

Computación en el Servidor Web - Javier Cubo 17


Acceder a la BD MariaDB desde PHP
La clase mysqli: métodos

Computación en el Servidor Web - Javier Cubo 18


Acceder a la BD MariaDB desde PHP
La clase mysqli: métodos

§ Información completa de la clase en:

http://php.net/manual/es/class.mysqli.php

Computación en el Servidor Web - Javier Cubo 19


Acceder a la BD MariaDB desde PHP
Establecer la conexión
§ Orientado a objetos:
• La conexión se establece cuando se crea el objeto (en el
constructor)

Computación en el Servidor Web - Javier Cubo 20


Acceder a la BD MariaDB desde PHP
Establecer la conexión
§ Estilo por procedimientos:
• Se usa una función de establecimiento de conexión

Computación en el Servidor Web - Javier Cubo 21


Acceder a la BD MariaDB desde PHP
Seleccionar datos
§ Necesidad de conexión establecida

§ Valor retornado:
• Si hay fallos, FALSE

• Si hay datos seleccionados, un mysql_result

• Si hay éxito pero nada que devolver, TRUE

Computación en el Servidor Web - Javier Cubo 22


Acceder a la BD MariaDB desde PHP
Seleccionar datos
§ Ejemplo por procedimientos

Computación en el Servidor Web - Javier Cubo 23


Acceder a la BD MariaDB desde PHP
Procesar los datos
§ La consulta devuelve un objeto MySQLi_Result

Computación en el Servidor Web - Javier Cubo 24


Acceder a la BD MariaDB desde PHP
La clase mysqli_result

§ Información completa de la clase en:

http://php.net/manual/es/class.mysqli-result.php

Computación en el Servidor Web - Javier Cubo 25


Acceder a la BD MariaDB desde PHP
Obtener los metadatos
§ Usando fetch_field_direct(nº registro) o fetch_fields()

§ Para estilo orientado a objetos y procedural

Computación en el Servidor Web - Javier Cubo 26


Acceder a la BD MariaDB desde PHP
Obtener los metadatos
§ Propiedades del objeto devuelto

Computación en el Servidor Web - Javier Cubo 27


Acceder a la BD MariaDB desde PHP
Multiconsultas
§ Para ejecutar más de una consulta seguida

Computación en el Servidor Web - Javier Cubo 28


Acceder a la BD MariaDB desde PHP
Inserción, modificación, borrado
§ Se realizan con las sentencias SQL INSERT, UPDATE,
DELETE
§ Desde PHP construir la consulta en cada de texto y pasarla
como argumento al método query()
§ Sugerencia
• Construir la cadena de la sentencia fuera de la llamada

Computación en el Servidor Web - Javier Cubo 29


Cuestiones interesantes
Conceptos previos
§ Es necesario iniciar MariaDB en XAMPP

§ Podemos utilizar otras herramientas para manejar las BD que


tengamos
• https://mariadb.com/kb/en/mariadb/monyog-sqlyog/

• MySQLWorkBench (para MySQL)

§ Probar la conexión “desde fuera”


• Asegurarnos que los parámetros son correctos

§ Configuraciones por defecto pueden ser sin contraseña


• Comprobar fichero config.inc.php

Computación en el Servidor Web - Javier Cubo 30


Cuestiones interesantes
Conceptos previos
§ Si es necesario cambiar la contraseña en phpMyAdmin
• En la pestaña “SQL” de phpMyAdmin
UPDATE mysql.user SET
Password=PASSWORD(‘nuevopwd') WHERE
User='root';
FLUSH PRIVILEGES;
• Comprobar que esté la misma contraseña en config.inc.php

§ Tabla temporal: se elimina al cerrar la conexión


• Especificando las columnas, como en un CREATE TABLE
• A partir de una tabla existente: usando LIKE
• Como resultado de una selección

Computación en el Servidor Web - Javier Cubo 31


Practicar
§ Practicar con Ejemplo en documentación y realizarlos con el otro
paradigma (objetos y procedural)

Computación en el Servidor Web - Javier Cubo 32


Practicar
§ Crear tabla
temp y
Consultar
contenido

Computación en el Servidor Web - Javier Cubo 33


Practicar
§ Trabajar
con datos
devueltos

Computación en el Servidor Web - Javier Cubo 34


Practicar
§ Multiconsultas,
insertar,
modificar,
borrar

35
www.unir.net

También podría gustarte