+ All Categories
Home > Documents > 3_1_BasesdeDatosMySQLiPHP

3_1_BasesdeDatosMySQLiPHP

Date post: 04-Jun-2018
Category:
Upload: taboada11
View: 215 times
Download: 0 times
Share this document with a friend

of 28

Transcript
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    1/28

    Unidad Didctica 3

    Acceso a bases de datos desde

    lenguajes de script de servidor

    3.1 BASES DE DATOS MySQLi y PHP

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva 1

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    2/28

    Bases de datos en la Web

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Esquema bsico de un sitio web soportado por bases de datos:

    Las bases de datos permiten

    almacenar de una forma

    estructurada y eficiente toda la

    informacin de un sitio web

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    3/28

    Instalacin y config. de MySQL

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Descargar Instalar Configurar ArrancarServidor

    Conectar con elservidor

    Instalar laextensin paraMySQL de PHP

    http://dev.mysql.com/

    mysql-installer-web-community-5.6.26.0.msi

    y seguir las indicaciones:

    1. Seleccionar Server only2. Instalar MySQL Server 5.6.263. Pasar a la configuracin

    Asistente para la configuracin del servidor1. ConfigType: Sever machine2. Contrasea para el administrador (root)

    3. Crea el usuario alumno1con role: DB Admin ypassword alumno1

    4. Instalacin como servicio Windows5. Lanzar el servidor manualmente6. Pulsar Execute para realizar la configuracin7. Pulsar Finish para finalizar el asistente

    Si arranque no automtico:C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldu root

    Desde la lnea de rdenes con Inicio > Programas> MySQL > MySQL Server 5.6 > MySQL CommandLine Client Mediante phpMyAdmin

    Usando la biblioteca de funciones de MySQL queposee PHP

    http://dev.mysql.com/downloads/file.php?id=458482http://dev.mysql.com/downloads/file.php?id=458482
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    4/28

    Puesta en servicio desde la consola deMS-DOS

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Activar el servidor MySql instaladoC:\Program Files \MySQL\MySQL Server 5.6\bin\mysqldu root -p

    Ejecutar instrucciones como usuario (cmd)

    Situarse en el drectorio C:\Program Files\MySQL\MySQL Server 5.6\bin\

    Y ejecutar mysqlu alumno1p Obtener un listado de todas las bases de datos

    Obtener un listado de todas las tablas de la BD mysql

    Salir delinterface de usuario

    mysql> exit

    Apagar el servidor MySQL

    C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin -u root p shutdown

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    5/28

    Herramienta de administracin:phpMyAdmin

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Descargar Descomprimir Configurar Arranque

    http://www.phpmyadmin.net

    1. Descomprimir debajo

    de la carpeta raz de la

    web (htdocs)

    2. Cambiar el nombre dela carpeta creada a

    phpmyadmin

    - Localizar el archivo config.sample.inc.php, situado en la carpeta

    donde se haya instalado phpMyAdmin,-Aabrirlo y comprobar que dispone la siguiente configuracintpica para un servidor local:

    /* Authentication type */$cfg['Servers'][$i]['auth_type'] = 'cookie';/* Server parameters */$cfg['Servers'][$i]['host'] = 'localhost';$cfg['Servers'][$i]['connect_type'] = 'tcp';

    $cfg['Servers'][$i]['compress'] = false;$cfg['Servers'][$i]['AllowNoPassword'] = false;

    - Salvarlo como config.inc.php 1. Ejecutar Apache y MySqld

    2. Abrir el navegador y teclear la

    url http://localhost/phpmyadmin

    http://www.phpmyadmin.net/http://www.phpmyadmin.net/
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    6/28

    Mysql en WampServer

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Al arrancar WampServer se activa el servidor de MySqlY Podemos acceder a phpMyAdmin

    Actividades: Realizar mysql3

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    7/28

    Ficheros MySQL

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Durante el proceso de instalacin se cre: un subdirectorio llamado data con dos bases de datos : mysql y test. veintitrs tablas en la base de datos mysql. Una de ellas es user

    Cada base de datos que creemos: dar lugar a crear un directorio con el mismo nombre dentro del directorio

    data.

    Y las tablas que creemos darn lugar a tres ficheros que se almacenarn en dichodirectorio

    La tabla user contiene informacin sobre los usuarios, desde qumquinas pueden acceder a nuestro servidor MySQL, sus claves y

    contraseas y los permisos de acceso de cada uno de ellos

    Uno con extensin .frm contienen la estructura de cada tabla,

    Otro con extensin .MYD contiene los datos ,

    Otro con MYI contienen los ndices de esa tabla.

    Tipo

    MyISAM

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    8/28

    Funciones de PHP para el acceso abases de datos MySQL

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Los pasos para acceder desde PHP a una base de datos sonlos siguientes:

    Conectar con el servidor de bases de datos:

    mysqli_connect($servidor, $usuario, $contrasea, $nombreBaseDatos)

    Seleccionar una base de datos:mysqli_select_db($conexin, $nombreBaseDatos)

    Enviar la instruccin SQL a la base de datos:

    mysqli_query($conexion, $sentencia )

    Obtener y procesar los resultados:

    mysqli_num_rows() y mysqli_fetch_array()

    Cerrar la conexin con el servidor de bases de datos:

    mysqli_close()

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    9/28

    Conexin a MySQL desde PHP (I)

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    La conexin la haremos a travs de un fichero include mysql.inc.php queguardaremos en wamp/seguridad.

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    10/28

    Conexin a MySQL desde PHP (II)

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    11/28

    Conexin a MySQL desde PHP (III)

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Evita que aparezca un mensaje de error de

    php

    En el caso de que se produzca un error se

    interrumpir la ejecucin del script y aparecer en

    la ventana del navegador el texto incluido enmensaje.

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    12/28

    Listar las bases de datos existentes

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    13/28

    Crear y borrar una base de datos

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    requiere una conexin previamysqli_query ($c,"CREATE DATABASE nom")

    mysqli_query ($c,"DROP DATABASE nom")

    Actividades: Realizar crearBaseDatos1 ycrearBaseDatos2

    Atencin!

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    14/28

    Creacin de tablas

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    Tipos de campos en MySql Campos numricos

    Campos de fecha

    Campos de cadena de caracteres

    Ejemplo de creacin de una tabla

    Se ve en el mduloBases de Datos

    Conexin con el servidor $c=mysqli_connect(h, u, p)Seleccin de la base de datos mysqli_select_db($c,"n);

    Creacin de la tabla mysqli_query($c,$sent);

    Actividades: Realizar crearTablas1 ycrearTablas2

    http://docencia.taboadaleon.es/attachments/article/256/Tipos%20de%20campos%20en%20MySQL.pdfhttp://docencia.taboadaleon.es/attachments/article/256/Tipos%20de%20campos%20en%20MySQL.pdfhttp://docencia.taboadaleon.es/attachments/article/256/Tipos%20de%20campos%20en%20MySQL.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_3/CuadernoEjemplosBaseDatosPHP.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_3/CuadernoEjemplosBaseDatosPHP.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_3/CuadernoEjemplosBaseDatosPHP.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_3/CuadernoEjemplosBaseDatosPHP.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_3/CuadernoEjemplosBaseDatosPHP.pdfhttp://localhost/var/www/apps/conversion/tmp/scratch_3/CuadernoEjemplosBaseDatosPHP.pdfhttp://docencia.taboadaleon.es/attachments/article/256/Tipos%20de%20campos%20en%20MySQL.pdf
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    15/28

    Ver y modificar estructuras (I)

    16/02/2017Implantacin de Aplicaciones WEB.

    BASES DE DATOS - JJ Taboada

    IES San Sebastin

    Huelva

    $r=mysqli_query($c,"SHOW FIELDS from $tabla) $t =mysqli_fetch_row ($r)

    Borrar una tabla DROP TABLE IF EXISTS from nombre de la tabla

    Borrar uno de los campos de una tabla ALTER TABLE nombre dela tabla DROP nombre del campo

    Aadir un nuevo campo a una tablaALTERTABLE nombre de latabla ADD nombre del campo tipo [flags]

    $r=mysqli_query($c,$sent);while($t=mysqli_fech_row($r){

    foreach ($t as $valor){print $valor;

    }}

    while($t=mysqli_fech_row($r){$g[]=$t;

    }

    VISUALIZAR LA

    ESTRUCTURA DE UNA

    TABLA

    Ejercicios: Realizar modificarTablas1

    http://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdf
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    16/28

    Ver y modificar estructuras (II)

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    Funcin Valor devuelto

    mysqli_field_count ($c) nmero de campos de la tabla

    mysqli_num_rows ($r) nmero de registros Si la tabla nocontiene datos devolver CERO.

    Utilizar sentencias SQL nombre de la tabla

    tipo de campoflags del campo

    longitud del campo

    nombre del campo

    mysqli_free_result($r) liberarla parte de la memoria que

    contiene un identificador de resultado

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    17/28

    Aadir registros

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    INSERT INTO tabla (campo1,campo2,..) VALUES (valor1,valor2,..)

    mysqli_errno($c) Indica el nmero de errorque se ha producido enla transaccin MySQL realizada a travs del identificador de enlace $c.Nmero de error CERO si no error

    mysqli_error($c) Devuelve la descripcin del error.

    Ver ejemplo de aadir un registro

    Ver ejemplo de aadir registros de forma aleatoria

    Ejercicios: Realizar AadirRegistros1 y 2

    Error nmero 1050:Intentar crearuna tabla ya existente.Error nmero 1062:Indica que hemostratado de introducir unvalor con claveduplicada en un campocon ndice nico oprincipal

    http://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdf
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    18/28

    La sentencia INSERT con modificadores

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    INSERT [LOW_PRIORITY | DELAYED] [IGNORE]INTOtabla(campo1,..) VALUES (valor1,..)

    LOW_PRIORITYel proceso de escritura esperar a que terminen losprocesos de lectura activos

    DELAYED el proceso de lectura se interrumpir automticamente paraceder el paso al de escritura.

    IGNORE

    Si no est activa: en el momento en el que aparezca una clave duplicada se

    interrumpir el proceso de insercin

    si estuviera activa el proceso de insercin continuar

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    19/28

    Aadir ndices

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    Tipo de ndice

    PRIMARY KEY(campo) ndice principal de la tablano admite valores duplicadosSolo puede definirse un ndice primario por tabla y el campoutilizado ha de ser un campo no nulo.

    UNIQUE nombre (campo) permite la creacin de ms de un ndice de este tipo por tablano requiere que los campos sobre los que se define sean no nulos.no admite valores duplicados

    INDEX nombre (campo) crea un ndice secundario

    INDEX nombre (campo(n)) utilizable slo en el caso de que el campo ndice sea tipo CHAR yVARCHAR que permite indexar por losn primeroscaracteres de esas cadenas.

    El valor de n ha de ser:

    n

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    20/28

    Aadir registros a travs deformularios

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    Lo estudiamos viendo detenidamente los siguientesejemplos del cuaderno de ejemplos Base de Datos PHP

    Creacin del formulario

    Script para recogida de los datos enviados

    Los valores de SELECT MULTIPLECastellanoFrancsInglsAlemnBlgaroChino

    En la tabla demo4$crear.="Idiomas SET(' Castellano','Francs','Ingls',' Alemn',' Blgaro','Chino'), ";

    Si seleccionamos Francsy Blgaro elarray sera : var[0]=2,var[1]=16

    Si sumamos esos valores (2 + 16) elresultado sera 18, y al convertir abinario este valor,resultar: 010010

    Ejercicios: Realizar aadirRegistros3

    http://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHPMysqli.pdf
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    21/28

    Consultas en tablas

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    Sintaxis MySQL de seleccin de registros

    Ejemplo de Consulta seleccionando registros

    Sentencias bsicas para consultas

    SELECT campos FROM taba WHERE condiciones

    SELECTcampo1,campo2, ... FROMtabla ORDERBYcampo_n [ASC|DESC], campo_m[ASC|DESC]

    SELECT MAX(campo1), MIN (campo2), ... FROMtabla

    Actividades: Realiza consulta1 y consulta2

    http://docencia.taboadaleon.es/attachments/article/256/ConsultasenMySQL.pdfhttp://docencia.taboadaleon.es/attachments/article/256/ConsultasenMySQL.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHP.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHP.pdfhttp://docencia.taboadaleon.es/attachments/article/256/CuadernoEjemplosBaseDatosPHP.pdfhttp://docencia.taboadaleon.es/attachments/article/256/ConsultasenMySQL.pdf
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    22/28

    Consulta conjuntade varias tablas

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    SELECTtabla1.campo1, tabla2.campo2, ... FROMtabla1, tabla2

    Actividades: Consulta3

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    23/28

    Modificar y Borrar registros

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    UPDATEtabla SETcampo1=valor1, campo2=valor2

    UPDATEtabla SETcampo1=valor1, campo2=valor2WHEREcondicin

    DELETE FROMtabla

    DELETE FROMtabla WHERE condicin

    Actividades: Realiza la Actividad Final propuesta

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    24/28

    Imgenes en Tablas

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    Las imgenes se pueden guardar en campos del tipo: BLOB

    MEDIUMBLOB

    LONBLOB

    Para guardar la imagen en el campo: una vez subida al servidor el archivo temporal, abrir el archivo

    en modo lectura y binario

    Leer el archivo

    Aadir \ antes de las comillas con addslashes Lectura de la imagen

    Segn el tamao en byte de la imagen

    header("Content-type: $tipo_imagen);echo $registro['imagen'];

    Ms informacin

    http://tecnoloxiaxa.blogspot.com.es/2009/04/manual-de-php-78-mysql-imagenes-en.htmlhttp://tecnoloxiaxa.blogspot.com.es/2009/04/manual-de-php-78-mysql-imagenes-en.html
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    25/28

    Tablas InnoDB (I)

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    Permiten realizar transacciones Definir reglas de integridad referencial

    Utilizan un solo archivo por tabla

    Creacin: Igual que MYISAM pero con Type=InnoDB

  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    26/28

    Tablas InnoDB (II)

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    Transacciones: los datos se registran de forma provisionalhasta que recibe una orden de definitivo: BEGIN,comienza la transaccin

    ROLLBACK indica final transaccin pero sin hacerse efectivos loscambios

    COMMIT indica final transaccin y debe hacerse efectivos loscambios

    Ms informacin

    http://yophpro.com/mysql/transacciones-mysql-con-php.htmlhttp://yophpro.com/mysql/transacciones-mysql-con-php.html
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    27/28

    Tablas InnoDB (III)

    16/02/2017Implantacin de Aplicaciones WEB.BASES DE DATOS - JJ Taboada

    IES San SebastinHuelva

    La Integridad referencial ha de establecerse siempre entredos tablas: Una es la tabla principal con un ndice primario (PRIMARY KEY)

    La otra es una tabla vinculada con un ndice (no necesariamente nico o primario) ycon campos asociado de tipo idntico a los usados en el ndice de la tabla primaria.

    Sintaxis:

    Ver ejemplo

    Ms informacin

    CREATE TABLEtablaVinculada (campo1, campo2,...KEY nombre (campo de vinculacion ),FOREIGN KEY (campo de vinculacion)REFERENCES nombre_de la tabla principal(Indice

    primario de la tabla principal)) Type=InnoDB

    http://docencia.taboadaleon.es/attachments/article/256/TablasInnoDBMysqli.pdfhttp://docencia.taboadaleon.es/attachments/article/256/TablasInnoDBMysqli.pdfhttp://www.rinconastur.com/php/php107.phphttp://www.rinconastur.com/php/php107.phphttp://docencia.taboadaleon.es/attachments/article/256/TablasInnoDBMysqli.pdf
  • 8/13/2019 3_1_BasesdeDatosMySQLiPHP

    28/28

    3.1 BASES DE DATOS MySQLi y PHP

    16/02/2017

    IES San

    SebastinH l 28

    Implantacin de Aplicaciones WEB.

    Unidad 3