La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SISTEMAS DE ADMINISTRACIÓN DE BASES DE DATOS RELACIONALES

Presentaciones similares


Presentación del tema: "SISTEMAS DE ADMINISTRACIÓN DE BASES DE DATOS RELACIONALES"— Transcripción de la presentación:

1 SISTEMAS DE ADMINISTRACIÓN DE BASES DE DATOS RELACIONALES
PostgreSQL: INSTALACIÓN LINUX Y MANEJO DE TABLAS MySQL: INSTALACIÓN WIN Y ACCESO A TRAVES DE PHP Cristina Sánchez Julia Sigles COMERCIO ELECTRÓNICO

2 Índice Introducción Propiedades de lso RDBMS PostgrSQL
Instalación en Linux Comentarios Crear una tabla Insertar datos en una tabla Extraer datos de una tabla Otras Instrucciones útiles MySQL Instalación en Windows Aspectos de configuración Instrucciones básicas de manipulación de tablas Ejemplo creación de BD Ejemplo de consulta de la BD desde la Web con PHP Ejemplo de introducción de datos a la BD desde la web con PHP

3 Introducción Por lo general, todo e-comercio necesita almacenar los datos de sus clientes y pedidos para posteriormente ser servidos. Una posibilidad seria escribir los pedidos en archivos (método de archivos planos), usando funciones como fopen(), fwrite(), fgets(), readfile(), feof(), fclose(), etc. Tiene limitaciones en aspectos como el tamaño del archivo, la difícil búsqueda de un registro, en accesos simultáneos, imposible aplicar diferentes niveles de acceso, etc. Cuando se trata de un gran número de pedidos lo mejor es usar un sistema de administración de base de datos relacional (basada en tablas) como MySQL o PostgreSQL. Otra posibilidad para un sistema sencillo que no necesite base de datos completa es la nueva extensión SQLite de PHP, que es una interfaz SQL a un archivo plano.

4 Propiedades de los RDBMS
Los sistemas de administración de bases de datos implementan todas la funciones necesarias en un sistema de almacenamiento: Proporcionan acceso más rápido a los datos que los archivos planos. MySQL es uno de los más rápidos. Resulta sencillo consultarlos para extraer conjuntos de datos que se correspondan con determinados criterios. Incorporan mecanismos integrados para resolver el problema de accesos simultáneos para que los programadores no tengan que preocuparse. Proporcionan acceso aleatorio a los datos. Incorporan sistemas de privilegios.

5 PostreSQL

6 PostgreSQL PostgreSQL es un servidor de base de datos relacional libre bajo la licencia BSD. Es una alternativa a otros sistemas de bases de datos de código abierto (como MySQL, Firebird y MaxDB), así como sistemas propietarios como Oracle o DB2. Algunas de sus principales características son: Claves ajenas también denominadas llaves ajenas o llaves Foráneas (foreign keys) Disparadores (triggers) Vistas Integridad transaccional Acceso concurrente multiversión (no se bloquean las tablas, ni siquiera las filas, cuando un proceso escribe) Capacidad de albergar programas en el servidor en varios lenguajes. Herencia de tablas Tipos de datos y operaciones geométricas

7 Instalación de PostgreSQL en Linux
Nota: Caso para sistema operativo Debian GNU/Linux. Descargar del sitio oficial de PostgreSQL los fuentes. Suponiendo que el archivo *.tar.bz2 lo colocamos en /usr/local/, lo descomprimimos: SERVER:~# cd /usr/local SERVER:/usr/local# bzcat postgresql tar.bz2 | tar -xvf – Creamos el Makefile, compilamos y copiamos los ejecutables a los lugares apropiados: SERVER:/usr/local# cd postgresql-8.0.4 SERVER:/usr/local/postgresql-8.0.4# ./configure SERVER:/usr/local/postgresql-8.0.4# make SERVER:/usr/local/postgresql-8.0.4# make install En este momento ya tenemos instalado PostgreSQL.

8 Instalación de PostgreSQL en Linux
Para ejecutar el servidor de bases de datos, es requisito indispensable que no corra como root, así que primero crearemos un usuario de sistema llamado postgres: SERVER:~# useradd postgres Configuramos en el archivo /etc/passwd la línea del usuario que acabamos de crear: postgres:x:1001:1001::/var/pgsql/data:/bin/bash Le asignamos un password al usuario con el comando passwd y luego agregamos en el archivo /etc/group el grupo que le asignamos en el /etc/passwd (en este caso 1001): postgres:x:1001:

9 Instalación de PostgreSQL en Linux
Creamos un clúster de bases de datos de PostgreSQL, que contendrá las bases de datos que vayamos creando. Al momento de inicializar un clúster de bases de datos de PostgreSQL se tiene que indicar el directorio donde se desea que se cree. El propietario de ese directorio tiene que ser un usuario que no sea root. Como nosotras indicamos en el /etc/passwd que el HOME del usuario postgres es /var/pgsql/data, siguiendo con esa lógica, vamos a indicar que ése sea el directorio donde se localice el clúster de bases de datos. Entonces creamos el directorio y le cambiamos de propietario: SERVER:~# mkdir -p /var/pgsql/data SERVER:~# chown postgres /var/pgsql/data Ahora nos cambiamos al usuario postgres e inicializamos el clúster de bases de datos con el comando initdb: SERVER:~# su - postgres /usr/local/pgsql/bin/initdb -D /var/pgsql/data

10 Instalación de PostgreSQL en Linux
Nos aparece una ejecución como la siguiente: The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale C. fixing permissions on existing directory /var/pgsql/data ... ok creating directory /var/pgsql/data/global ... ok creating directory /var/pgsql/data/pg_xlog ... ok creating directory /var/pgsql/data/pg_xlog/archive_status ... ok creating directory /var/pgsql/data/pg_clog ... ok creating directory /var/pgsql/data/pg_subtrans ... ok creating directory /var/pgsql/data/base ... ok creating directory /var/pgsql/data/base/1 ... ok creating directory /var/pgsql/data/pg_tblspc ... ok selecting default max_connections selecting default shared_buffers ... Success. You can now start the database server using: /usr/local/pgsql/bin/postmaster -D /var/pgsql/data or /usr/local/pgsql/bin/pg_ctl -D /var/pgsql/data -l logfile start

11 Instalación de PostgreSQL en Linux
El siguiente paso es inicializar el servidor de bases de datos. Antes agregamos unas líneas al archivo ‘.bash_profile’ del usuario postgres, para evitar tener que escribir todo el path del clúster de BD cada vez que inicializamos el servidorBD, y para agregar a nuestro path el directorio donde están los comandos de postgres: PGDATA=/var/pgsql/data PATH=/usr/local/pgsql/bin:$PATH export PATH PGDATA Como el HOME que le asignamos al usuario postgres es /var/pgsql/data , el archivo ‘.bash_profile’ deberá crearse en este directorio. Como usuario postgres inicializamos el servidor de bases de datos con el comando pg_ctl: pg_ctl start postmaster starting LOG: database system was shut down at :21:57 CST LOG: checkpoint record is at 0/A38A34 LOG: redo record is at 0/A38A34; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 544; next OID: 17230 LOG: database system is ready Ahora PostgreSQL está en funcionamiento.

12 Instalación de PostgreSQL en Linux
Para conectarse a un servidor de base datos PostgreSQL se utiliza el comando psql. Se le pueden pasar muchos parámetros a este comando de la forma psql [OPTIONS]... [DBNAME [USERNAME]]. Para empezar, nos conectamos al nuevo servidor que acabamos de crear, y una vez dentro, le asignamos un password al usuario con privilegios de postgres: psql template1 Welcome to psql 8.0.4, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit template1=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'secret'; ALTER USER template1=# \q ‘template1’ es el nombre de una de las dos bases de datos que por defecto se encuentran en el database cluster. Entre otras cosas, la base template1 se utiliza cuando uno crea una base de datos nueva. Para salir de la terminal de PostgreSQL se utiliza el comando \q .

13 Instalación de PostgreSQL en Linux
Si nos conectamos por segunda vez, vemos que no nos pide el password. Esto se debe a que existe un archivo de configuración llamado ‘pg_hba.conf’ en el que se determina quién, cómo y a qué, se puede acceder de nuestro servidor de BD, y por defecto está definido de forma que se aceptan todas las conexiones locales sin necesidad de password. Si por ejemplo, sólo queremos aceptar conexiones locales y del host con IP ( donde se hospedaría el servidor web y la aplicación PHP que realiza las conexiones con el servidor de BD), y además usar encriptación MD5 en la autenticación…, el archivo pg_hba.conf contendría las siguientes líneas: # TYPE DATABASE USER CIDR-ADDRESS METHOD local all all md5 host all all md5 host all all reject

14 Instalación de PostgreSQL en Linux
Tras cualquier cambio de configuración, es preciso reiniciar el servidor DB. Podemos especificar al mismo tiempo el nombre del archivo en el que guardará la bitácora (log). El nombre del archivo se lo pasamos como parámetro al comando pg_ctl (por ejemplo log_ ): pg_ctl stop LOG: received smart shutdown request LOG: shutting down waiting for postmaster to shut down....LOG: database system is shut down done postmaster stopped pg_ctl start -l log_ postmaster starting

15 Instalación de PostgreSQL en Linux
Otro archivo de configuración importante es ‘postgresql.conf’. En este archivo se puede configurar el puerto por el que escuchará el servidor, el número máximo de conexiones que permitirá, el uso de los recursos de sistema, las bitácoras, etc. Los parámetros comentados tienen valores por defecto. Para cambiarlos, solo hay que descomentar la línea y asignar el valor deseado. Sin olvidar reiniciar posteriormente. Para las versiones 7.x de PostgreSQL, si se desea aceptar conexiones TCP/IP, se tiene que especificar en este archivo la línea tcpip_socket = true.

16 Instalación de PostgreSQL en Linux
Para conectarse desde otro host a nuestro servidorDB, éste ha de tener instalado el cliente de PostgreSQL. Supongamos que la dirección IP del servidorDB al que queremos acceder es Para conectarnos a la base de datos ‘BDphp’ del servidorDB, mediante el usuario de postgress ‘cris’ desde el host cliente, basta con ejecutar la instrucción: psql -h BDphp cris En lugar de especificar la IP, también se puede utilizar el nombre de dominio del servidor.

17 Comentarios Para los que les guste trabajar más con interfaz gráfica y no desde shell, existe ‘pgadmin’, es como una mezcla entre el Enterprise Manager y el Query Analyzer de MS SQL Server. También se dispone de la aplicación ‘phpPgAdmin’, que es muy similar en funcionalidad a phpMyAdmin. Para realizar conexiones utilizando ODBC, existe ‘psqlODBC’.

18 Creación de una tabla con PostgreSQL
Una vez creada la base de datos, se pueden crear las tablas que la componen de la siguiente manera: CREATE TABLE nombre_tabla ( nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] [ , nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ]... ] [ , [ vínculo_de tabla] ... ] ) Nombre_columna: es el nombre de la columna que compone la tabla. Hay que tener en cuenta que la longitud de los identificadores de columna no debe tener más de 18 caracteres.

19 Creación de una tabla con PostgreSQL
Tipo_columna: es la indicación del tipo de dato que la columna podrá contener. Los principales tipos son: CHARACTER(n) -> cadena de longitud fija con exactamente n caracteres CHARACTER VARYING(n) -> cadena de longitud variable con un máximo de n caracteres INTEGER -> Un número entero con signo. SMALLINT -> Un número entero con signo y una precisión que no sea superior a INTEGER. FLOAT(p) ->Un número con coma móvil y una precisión p DECIMAL(p,q)-> Un número con coma fija de por lo menos p cifras y signo. INTERVAL->Un periodo de tiempo DATE, TIME y TIMESTAMP -> Un instante temporal preciso

20 Creación de una tabla con PostgreSQL
Cláusula_defecto: indica el valor por defecto que tomará la columna si no se le asigna uno en el momento en que se crea la línea. Vínculos_de_columna: son vínculos de integridad que se aplican a cada columna en concreto. NOT NULL indica que la columna no puede tomar el valor NULL. PRIMARY KEY indica que la columna es la llave primaria de la tabla. Vínculo_de_tabla: son vínculos de integridad que se pueden referir a más columnas de la tabla

21 Creación de una tabla con PostgreSQL
A continuación, mostramos como crear una tabla de dos columnas llamada ejemplo: CREATE TABLE Ejemplo ( ID INTEGER PRIMARY KEY, => ID indica la llave primaria de la relación de tipo INTEGER. type CHAR(18) NOT NULL => Es un atributo donde hay un vínculo de no nulidad, es de tipo CHAR(18) );

22 Inserción de datos en una tabla con PostgreSQL
Para añadir una linea nueva a una tabla utilizaremos INSERT: INSERT INTO nombre_tabla [ ( lista_campos ) ] VALUES ( lista_valores ) Nombre_tabla es el nombre de la tabla donde hay que incluir la nueva línea. Lista_campos son los nombres de los campos a los que hay que asignar un valor, separados entre sí por una coma. Los campos no incluidos en la lista tomarán su valor por defecto o NULL. Lista_valores valores que se asignaran a los campos de la tabla en el orden y número especificados.

23 Inserción de datos en una tabla con PostgreSQL
Aqui, mostramos dos ejemplos de inserción en dos tablas distintas: INSERT INTO Persona VALUES ( 1, 'Agosti', 'Maristella' ); INSERT INTO Persona VALUES ( 2, 'Benfante', 'Lucio' ); INSERT INTO Persona VALUES ( 3, 'Melucci', 'Massimo' ); INSERT INTO Persona VALUES ( 4, 'Spaccapietra', 'S.' ); INSERT INTO Persona VALUES ( 5, 'Maryansky', 'F.' ); INSERT INTO Autor VALUES ( 2, 1 ); INSERT INTO Autor VALUES ( 2, 2 ); INSERT INTO Autor VALUES ( 2, 3 );

24 Extracción de datos de una tabla.
Las instrucciones que utilizamos para extraer datos de las tablas son: SELECT [ ALL | DISTINCT ] lista_elementos_selección FROM lista_referencias_tabla [ WHERE expresión_condicional ] [ GROUP BY lista_columnas ] [ HAVING expresión_condicional ] [ ORDER BY lista_columnas ] Para comprender mejor el funcionamiento anterior, lo que haremos será aplicar la función anterior en unas tablas.

25 Extracción de datos de una tabla.
En este primer ejemplo, lo que se hace es extraer de una tabla llamada Personas los apellidos y ordenarlos alfabéticamente. Caso 1: SELECT apellidos FROM Personas ORDER BY apellidos La opción DISTINCT sirve para diferencia los casos donde nos encontremos con dos apellidos iguales. De esta manera no habrán problemas de líneas duplicadas. SELECT DISTINCT apellidos FROM Personas ORDER BY apellidos apellidos Agosti Batini Bayer Benfante Carey Cochowsky DeWitt Kim Knuth

26 El comparador LIKE permite una comparación de caracteres.
En este ejemplo, utilizando la tabla Personas, creamos una nueva que contiene solo los apellidos que empiezan por ‘B’. SELECT * FROM Personas WHERE apellidos LIKE 'B%‘ El comparador LIKE permite una comparación de caracteres. La nueva tabla es como la siguiente: Otro ejemplo sencillo es éste, lo único que hace es contar el número de líneas que tiene la tabla llamada Publicación. SELECT COUNT(*) FROM Publicacion count

27 Algunas instrucciones útiles:
MODIFICAR GRUPO — Instrucción para añadir usuarios o eliminarlos de un grupo. MODIFICAR GRUPO nombre AÑADIR USUARIO nombre de usuario [, ... ] MODIFICAR GRUPO nombre ELIMINAR USUARIO nombre de usuario [, ... ] MODIFICAR TABLA — Modificar una tabla. MODIFICAR TABLA tabla [ * ] AÑADIR [ COLUMNA ] columna tipo MODIFICAR TABLA tabla [ * ] MODIFICAR [ COLUMNA ] columna { SET DEFAULT valor | DROP DEFAULT } MODIFICAR TABLA tabla [* ] RENOMBRAR [ COLUMNA ] columna A nueva columna MODIFICAR TABLA tabla RENOMBRAR A nueva tabla MODIFICAR USUARIO — Modificar la información de la cuenta de un usuario MODIFICAR USUARIO nombre de usuario [ WITH PASSWORD 'palabra clave' ] [ CREATEDB | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ] [ VALID UNTIL 'abstime' ] CREATE GROUP — Crea un grupo nuevo CREATE GROUP name [ WITH [ SYSID gid ] [ USER username [, ...] ] ] CREAR USUARIO — La utilizamos para crear un nuevo usuario en la BD. CREAR USUARIO nombre de usuario [ CON [ SYSID uid ] [ PASSWORD 'palabra clave' ] ] [CREARDB | NOCREARDB ] [ CREARUSUARIO | NOCREARUSUARIO ] [ EN EL GRUPO nombre de grupo [,...] ] [ VALIDO HASTA 'abstime' ]

28 Algunas instrucciones útiles:
DELETE — Para borrar una fila de una tabla DELETE FROM table [ WHERE condition ] DROP DATABASE — Instrucción para eliminar una base de datos existente DROP DATABASE name DROP GROUP — Para eliminar un grupo DROP GROUP name GRANT — Otorga privilegios de acceso a un usuario, a un grupo o a todos los usuarios GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username } INSERT — Inserta filas nuevas en una tabla INSERT INTO table [ ( column [, ...] ) ] { VALUES ( expression [, ...] ) | SELECT query }

29 Algunas instrucciones útiles:
ROLLBACK — Interrumpe la transacción en curso ROLLBACK [ WORK | TRANSACTION ] TRUNCATE — Vacía una tabla TRUNCATE [ TABLA ] NOMBRE UPDATE — Substituye los valores de una columna en la tabla UPDATE tabla SET columna = expresión [, ...] [ FROM lista ] [ WHERE condición ] VACUUM — Limpia y analiza una base de datos Postgres VACUUM [ VERBOSE ] [ ANALYZE ] [ tabla ] VACUUM [ VERBOSE ] ANALYZE [ tabla [ (columna [, ...] ) ] ] Podemos encontrar mas instrucciones en la siguiente dirección URL:

30 MySQL

31 Instalación de MySQL en Windows XP
Descargar Mysql (4 o 5) de Descomprimir el ‘.zip’ y ejectuar Setup.exe: El instalador es un asistente InstallShield convencional.

32 Instalación de MySQL en Windows XP
El directorio de instalación predeterminado será C:\mysql, podéis cambiarlo una vez instalado pero con algunos pasos adicionales (temas de path en my.ini) para asegurar que todo funciona.

33 Instalación de MySQL en Windows XP
En la configuración de NT/2000/XP el nombre del servidor es ‘mysqld-nt’ y normalmente se instala como servicio (se ejecuta de fondo, automáticamente al encender el equipo, para dar servicio a otros programas): cd c:\mysql\bin Mysql-nt –install Service successfully installed Se puede iniciar y detener el servicio MySQL desde la línea de comandos con: NET START mysql NET STOP mysql o mysqladmin shutdown Para probar si MySQL funciona o no, ejectar: C:/mysql/bin/mysqlshow

34 Aspectos de configuración MySQL
Configurar la ruta para poder usar las utilidades de línea de comandos: Inicio -> Configuración -> Panel de control -> Sistema -> Operaciones avanzadas -> Variables de entorno: pulsar dos veces sobre PATH añadid ‘;’ a la ruta actual y detrás escribid ‘c:\mysql\bin -> Aceptar. Al reiniciar el equipo accederemos a MySQL sólo escribiendo ‘mysql’ Eliminar el usuario anónimo. La configuración predeterminada de MySQL permite que cualquier usuario acceda al sistema sin proporcionar user o password. Debe borrarse el usuario anónimo. Abrid una línea de comandos e introducid: C:\mysql\bin\mysql use mysql delete from user where User=‘’; quit; C:\mysql\bin\mysqladmin reload Definir la contraseña raíz. La cuenta de superusuario todavía no tiene contraseña. Configuradla: C:\mysql\bin\mysqladmin –u root password tu_password C:\mysql\bin\mysqladmin –u root –h nombre_host password tu_password A partir de ahora para cualquier instrucción deberéis indicar el user y os pedirá el password : C:\mysql\bin\mysqladmin –u root –p reload (luego os pide el password)

35 Aspectos de configuración MySQL
En el archivo de configuración de MySQL se indica la ubicación de los archivos de cabecera, las bibliotecas de MySQL y otras preferencias para nuestro sistema en particular. Según cómo, será necesario que modifiquéis algún parámetro de este archivo. Por ejemplo: hay que tener en cuenta que el número de conexiones simultáneas a MySQL es limitado, para rechazar las solicitudes de nueva conexión en momentos de mucho tráfico y evitar el uso de todos los recursos del equipo. Para determinar este parámetro hay que modificar: ‘MaxClients’ en ‘httpd.conf’ de Apache ‘max_connections’ en ‘my.conf’ de MySQL.(o my.cnf o my.cfg )

36 Instrucciones básicas de manipulación de tablas
Añadir datos: INSERT [INTO] tabla [(columna1, columna2, columna3, …)] VALUES (valor1, valor2, valor3, …); Recuperar datos: SELECT [opciones] elementos [INTO detalles_archivo] FROM tablas [WHERE condiciones] -> con criterios específicos [GROUP BY tipo_grupo] -> desde varias tablas [HAVING definición_de_dónde] [ORDER BY tipo_orden] -> con un orden dado (alfabeticamente según nombre) [LIMIT criterios_límite] -> especificar fílas que deberían devolverse [PROCEDURE nombre_proced (argumentos)] [opciones_bloqueo]; Actualizar registros: UPDATE [LOW_PRIORITY] [IGNORE] nombretabla SET columna1=expresión1 ,columna2=expresión2 ,… [WHERE condición] [ORDER BY criterios_de_orden] [LIMIT número]

37 Instrucciones básicas de manipulación de tablas
Eliminar registros de la base de datos DELETE [LOW_PRIORITY] [QUIK] [IGNORE] FROM tabla [WHERE condición] [LIMIT número] [ORDER BY orden_columnas] [LIMIT número] Eliminar tabla DROP TABLE nombre_tabla; Eliminar base de datos DROP DATABASE nombre_db; Para más información consultar o

38 EJEMPLO DE CREACIÓN DE UNA BASE DE DATOS SENCILLA
Not null -> todas las filas de la tabla deben contener un valor Auto-increment -> al dejar el campo en blanco al insertar filas genera automáticamente un valor de identificación exclusivo (una unidad mayor que el valor máximo incluido en la columna). Primary key -> la columna se tratará como la clave principal de la tabla.

39

40 EJEMPLO DE CONSULTA A LA BASE DE DATOS DESDE LA WEB CON PHP
Los pasos básicos de una secuencia de comandos para acceder a una base de datos desde la Web son: Comprobar y filtrar los datos procedentes del usuario. Configurar una conexión a la BD pertinente. Consultar la base de datos. Recuperar los resultados. Presentar los resultados al usuario.

41 1. Comprobar y filtrar los datos entrantes.
Es necesario asegurase de que los parámetros introducidos por el usuario, que vamos a pasar a la BD, estén en el formato adecuado para que sean interpretados correctamente. Por ello, deberemos: Eliminar los espacios en blanco que pudiera haber introducido el usuario, al principio o al final del término, mediante la función trim(): $searchterm= trim($searchterm); Verificar que el usuario ha introducido todos los términos necesarios: if (!$searchtype || !$searchterm){ mensaje de error y abortar} Comprobar si está activa la función que añade comillas automáticamente o no,’get_magic_quotes_gpc()’. (Cuando se pasa una $variable como parámetro se hace entre comillas, no obtendríamos el resultado deseado si la variable no tuviera o tuviera doble comillas.)

42 2. Configurar una conexión
La librería ‘mysqli’ de PHP5 permite usar una sintaxis orientada a objetos o procedimientos para conectarse a la BD de MySQL. Explicaremos el método basado en procedimientos cuya sintaxis es más parecida a la usada por las otras versiones de php. Establecimiento de la conexión con el servidor MySQL: @ $db=mysqli_connect(‘nombre_host’,’user’,’password’,’nombre_BD’); Esta función devuelve un puntero que representa la conexión a la base de datos. El operador de supresión de errores al inicio de la instrucción sirve para tratarlos con ‘elegancia’. Hemos especificado la BD a usar, pasando su nombre como parámetro a la función ‘mysqli_connect()’. Podríamos, más adelante, cambiar de base de datos predeterminada con la función: mysqli_select_db($db,’nombre_bd’) Comprobar el intento de conexión: if (mysqli_connect_errno()){ mensaje de error y abortar} La función usada en la condición retorna ‘0’ si no se da error o el ‘nº de error’ correspondiente en caso contrario.

43 3. Consultar la base de datos
Para empezar se configura la consulta deseada: $query=“ select * from books where “.$searchtype.” like '% “.$searchterm.” %’”; => Buscar, en la BD ‘books’, el valor introducido por el usuario ‘$searchterm’ en el campo escogido por el mismo ‘$searchtype’. A continuación ejecutamos la consulta pasando como parámetros, la variable $query que la contiene, y el link de la BD: $result = mysqli_query($db, $query); Esta función, devuelve un identificador de resultado que es almacenado en la variable $result para ser usado más adelante. En caso de fallo, la función devuelve false.

44 4. Recuperar resultados de consulta
Existe un conjunto de funciones para dividir los resultados del identificador de resultados de varias formas. El identificador de resultados es la clave para acceder a las filas devueltas por la consulta. Si queremos obtener el número de filas devueltas por la consulta, basta con ejecutar la siguiente función: $num_results = mysqli_num_rows($result); Además podemos obtener el valor de los diferentes campos de cada fila usando la función: $row = mysqli_fetch_assoc($result); Esta función toma cada fila del conjunto de resultados y devuelve la fila como matriz, con cada clave en forma de nombre de atributo y cada valor con su valor correspondiente en la matriz. Para acceder al campo y mostrarlo usamos: echo stripslashes($row[‘author’]); También se puede usar otra función que retorna una matriz enumerada en lugar de con claves con nombre: mysqli_fetch_row($result); Los valores de atributo se enumerarán en cada uno de los valores de matriz $row[0], $row[1], etc.

45 5. Desconectar de la base de datos
Para liberar el conjunto de resultados: mysqli_free_result($result) ; Para cerrar la conexión de BD: mysqli_close($db) ; Estos pasos no resultan imprescindibles ya que se cierran de todos modos cuando una secuencia de comandos finaliza su ejecución, pero siempre es recomendable hacerlo.

46 EJEMPLO DE INSERCIÓN DE NUEVA INFORMACIÓN A LA BASE DE DATOS DESDE LA WEB CON PHP
La inserción de nuevos elementos en una base es similar al caso anterior: Establecimiento de conexión Envío de ‘consulta’ Comprobación resultados Simplemente se usa INSERT en vez de SELECT, en la consulta. Veamos un ejemplo en el que insertaremos un nuevo libro a la base de datos.

47 Puntos a destacar Es aconsejable comprobar que todos los campos del formulario se han rellenado. También la aplicación del formato correcto para su inserción en la BD, mediante la función addslashes(). El precio es una variable flotante, hay que filtrar todos los caracteres extraños (y símbolos de moneda) que pudieran introducirse en este campo, mediante ‘doubleval()’. Con la instrucción SELECT se usa la función mysqli_num_rows() para obtener el nº de filas que devuelve. Con INSERT,DELETE y UPDATE hay que usar mysqli_affected_rows().


Descargar ppt "SISTEMAS DE ADMINISTRACIÓN DE BASES DE DATOS RELACIONALES"

Presentaciones similares


Anuncios Google