You are on page 1of 23

formulario.

php
Conexión de Base de Datos con página web
<html>
<head><title>Formulario para Base de Datos</title></head>
<?php
$nombre=$_POST[nombre!"
$email=$_POST[email!"
i# $$nombre%=&& '' $email%=&&(
)
m*s+l_,one,t$&m*s+l-.ebondario-,om&/ &musi,a0&/ &012&("
m*s+l_sele,t_db$&musi,a0&("

m*s+l_+uer* $&34S56T 34TO tabla $nombre/ email( 789:5S$$nombre/ $email(&("
;
?>
<bod*>
<#orm id=&#orm0& name=&#orm0& method=&post& a,tion=&&>
<table .idth=&<=>& border=&0& ,ellpaddin?=&@& ,ellpaddin?=&>& border,olor=&>>>>>>&>
<tr>
<td .idth=&<2=&>4ombre</td>
<td .idth=&21>&><input name=&nombre& t*pe=&teAt& id=&nombre&></td>
</tr>
<tr>
<td .idth=&<2=&>5Bmail</td>
<td .idth=&21>&><input name=&email& t*pe=&teAt& id=&email&></td>
</tr>
<td ,olspan=&1&><diC ali?n=&,enter&><input t*pe=&submit& name=&submit&
Calue=&5nCiar&></diC></td>
</table>
</#orm>
</bod*>
</html>
<%BB FuenteD
,one,tar #ormulario php ,on Base datos m*s+l$parte 0(
,one,tar #ormulario php ,on Base datos m*s+l$parte 1(
,one,tar #ormulario php ,on Base datos m*s+l$parte 2(
httpD//...-*outube-,om/.at,h?C=BTiEmFGHA8<
httpD//...-*outube-,om/.at,h?C==I8PA166rm:
httpD//...-*outube-,om/.at,h?C=Ab.J=<GibKL
CREATE TABLE `phpmyadmin`.`tabla` (
`id` INT( 100 ) NOT NULL AUTO_INCREMENT
`n!mb"#` INT( 100 ) NOT NULL
`#mail` INT( 100 ) NOT NULL
$RIMAR% &E% ( `id` )
) EN'INE ( M%I)AM *
Proyecto: PHP: MySQL y acceso a una base de datos
Resumen
Aprender a administrar una base de datos con MySQL. Conocer algunas herramientas que ayudan a administrar una base
de datos de MySQL. Aprender a acceder a una base de datos desde PHP. Aprender a realizar una consulta SELEC y
mostrar el resultado en una p!gina "eb.
Contenido
0- #b$eti%os
1- &Qu' tengo que hacer(
2- &C)mo lo hago(
<- *ecomendaciones
@- *ecursos
Objetivos
• Aprender a administrar una base de datos con MySQL.
• Conocer algunas herramientas que ayudan a administrar una base de datos de MySQL.
• Aprender a acceder a una base de datos desde PHP.
• Aprender a realizar una consulta SELEC y mostrar el resultado en una p!gina "eb.
¿Qué tengo que acer!
MySQL es el sistema gestor de bases de datos de c)digo abierto m!s popular en la actualidad. MySQL est! disponible para
distintos sistemas operati%os+ como Linu,+ Mac #S -+ Solaris+ .indo"s y otros m!s. MySQL es muy popular en el desarrollo
de aplicaciones "eb+ ya que /orma parte como sistema gestor de bases de datos de las plata/ormas + + y .
En esta pr!ctica tienes que crear una base de datos en MySQL para almacenar los datos que emplea el sitio "eb. La base
de datos se tiene que llamar 0pibd0 y tiene que tener las siguientes tablas 1se indica el tipo de dato m!s apropiado para cada
columna+ pero se puede cambiar seg2n la necesidad de cada uno34
"ab#a $suarios
• %d$suario 4 entero+ autoincremento y cla%e primaria.
• &om$suario 4 te,to 1longitud m!,ima 56 caracteres3 y %alor 2nico.
• C#ave 4 te,to 1longitud m!,ima 56 caracteres3.
• 'mai# 4 te,to.
• Se(o 4 entero peque7o.
• )&acimiento 4 /echa.
• Ciudad 4 te,to8 no se relaciona con una tabla porque los nombres de todas las ciudades del mundo es imposible de
conocer.
• Pais 4 entero y cla%e a$ena a Paises.
• )oto 4 te,to8 contiene el nombre y quiz!s la ruta del /ichero que almacena la /oto+ el uso de este campo depende de la
implementaci)n que realice el alumno.
• )Registro 4 marca de tiempo 1/echa y hora38 /echa de registro en el sistema del usuario.
"ab#a Paises
• %dPais 4 entero+ autoincremento y cla%e primaria.
• &omPais 4 te,to.
"ab#a *#bumes
• %d*#bum 4 entero+ autoincremento y cla%e primaria.
• "itu#o 4 te,to.
• +escri,cion 4 te,to.
• )eca 4 /echa8 /echa en el que /ueron tomadas las /otogra/9as del !lbum+ si es un per9odo de tiempo se puede poner la
/echa del primer d9a o de$ar en blanco.
• Pais 4 entero y cla%e a$ena a Paises8 pa9s en el que se tomaron las /otos+ si son %arios se puede de$ar en blanco.
• $suario 4 entero y cla%e a$ena a :suarios.
"ab#a )otos
• %d)oto 4 entero+ autoincremento y cla%e primaria.
• "itu#o 4 te,to.
• )eca 4 /echa8 /echa en la que /ue tomada la /oto+ se puede de$ar en blanco.
• Pais 4 entero y cla%e a$ena a Paises8 pa9s en el que se tomo la /oto+ se puede de$ar en blanco.
• *#bum 4 entero y cla%e a$ena a Albumes.
• )icero 4 te,to8 contiene el nombre y quiz!s la ruta del /ichero que almacena la /oto+ el uso de este campo depende de
la implementaci)n que realice el alumno.
• )Registro 4 marca de tiempo 1/echa y hora38 /echa de registro en el sistema de la /oto+ se emplea para mostrar las
2ltimas cinco /otos introducidas.
&ota: este dise7o de la base de datos se %er! modi/icado en pr!cticas posteriores cuando se incorporen algunas
/uncionalidades adicionales.
El mantenimiento de la tabla Paises se realiza directamente a tra%'s de la base de datos4 los datos se introducen
directamente en la tabla. *especto a las otras tablas+ el mantenimiento se realizar! en una pr),ima pr!ctica+ pero por ahora
introduce los datos directamente en las tablas para poder hacer pruebas.
Adem!s+ tienes que modi/icar las siguientes p!ginas 1;igura 53 para que realicen la consulta SELEC correspondiente y
%isualicen el resultado obtenido 1sustituye los datos est!ticos que tengas en las p!ginas "eb por los datos de%ueltos por la
base de datos34
P-gina ,rinci,a#
Contiene un listado con un resumen 1/oto+ t9tulo+ /echa+ pa9s3 de las 2ltimas cinco /otos que se han introducido.
P-gina con e# .ormu#ario de registro como nuevo usuario
En la lista desplegable para seleccionar el pa9s+ mostrar los pa9ses a partir de la tabla Paises de la base de datos.
P-gina con e# .ormu#ario de b/squeda
En la lista desplegable para seleccionar el pa9s+ mostrar los pa9ses a partir de la tabla Paises de la base de datos.
P-gina con e# #istado resu#tado de una b/squeda
A partir de los datos recibidos desde la <P!gina con el /ormulario de b2squeda= 1t9tulo+ /echa y>o pa9s3 debe realizar
una b2squeda en la tabla )otos y mostrar el resultado obtenido.
P-gina deta##e .oto
Muestra toda la in/ormaci)n sobre una /oto seleccionada en la p!gina anterior 1/oto+ t9tulo+ /echa+ pa9s+ !lbum de
/otos y usuario al que pertenece3.
P-gina contro# de acceso
Controla el acceso a la parte pri%ada para los usuarios registrados 1los que /iguran en la tabla $suarios3. Si el
usuario est! registrado+ mediante una redirecci)n en la parte del ser%idor se debe mostrar la p!gina con el men2 de
usuario registrado8 si el usuario no est! registrado+ mediante una redirecci)n en la parte del ser%idor se debe
mostrar la p!gina principal del sitio "eb.
P-gina 0Crear -#bum0
En la lista desplegable para seleccionar el pa9s+ mostrar los pa9ses a partir de la tabla Paises de la base de datos.
P-gina 0Mis -#bumes0
Muestra un listado con todos los !lbumes del usuario.
P-gina 01er -#bum0
?esde la <P!gina 0Mis !lbumes0=+ muestra todas las /otos que contiene un !lbum.
P-gina 0*2adir .oto a -#bum0
Contiene un /ormulario con los datos necesarios para a7adir una /oto 1t9tulo+ /echa+ pa9s+ /oto y !lbum al que se
a7ade la /oto3.
¿C3mo #o ago!
Creaci3n de #a base de datos desde #a #4nea de comandos
Para crear la base de datos en MySQL tienes di/erentes alternati%as. Por un lado+ puedes acceder a MySQL a tra%'s
de MySQL monitor que se encuentra en el directorio @,ampp@mysql@bin. En la ;igura A podemos %er una sesi)n de
e$ecuci)n con los siguientes comandos4
• mysql Bu root4 inicia la cone,i)n a la base de datos con el usuario root.
• sho" databases84 muestra las bases de datos que e,isten.
• use library84 selecciona una base de datos.
• sho" tables84 muestra las tablas que e,isten en la base de datos.
• describe booCs84 muestra el esquema de la tabla.
Para crear la base de datos debemos emplear el lengua$e de de/inici)n de datos 1Data Definition Language+ ??L3 de SQL
que permite de/inir las estructuras de la base de datos que almacenar!n los datos. En concreto+ los comandos SQL m!s
importantes que se utilizan para crear y mantener una base de datos son4
• C*EAE ?AADASE4 crea una base de datos con el nombre dado.
• ?*#P ?AADASE4 borra todas las tablas en la base de datos y borra la base de datos.
• C*EAE ADLE4 crea una tabla con el nombre dado.
• ALE* ADLE4 permite cambiar la estructura de una tabla e,istente.
• ?*#P ADLE4 borra una o m!s tablas.
Adem!s+ MySQL es un sistema gestor de bases de datos que /unciona con usuarios y permisos. Cuando se realiza una
cone,i)n a una base de datos desde una p!gina "eb se debe emplear un usuario especial para reducir los riesgos de
seguridad y e%itar que un usuario malintencionado pueda modi/icar o incluso eliminar toda una base de datos. El usuario
para conectarse desde una p!gina "eb debe tener otorgados 2nicamente los permisos para manipular los datos 1SELEC+
EFSE*+ :P?AE y?ELEE3 y F# los permisos para cambiar la estructura 1C*EAE+ ALE*+ etc.3 o administrar 1G*AF+
SH:?#.F+ etc.3 la base de datos.
En MySQL se puede crear una cuenta de usuario de tres /ormas4
• :sando el comando G*AF.
• Manipulando las tablas de permisos de MySQL directamente.
• :sar uno de los di%ersos programas proporcionados por terceras partes que o/recen capacidades para administradores
de MySQL+ como ,,My*dmin.
?esde la l9nea de comandos el m'todo pre/erido es usar el comando G*AF+ ya que es m!s conciso y menos propenso a
errores que manipular directamente las tablas de permisos de MySQL.
Por e$emplo+ las siguientes instrucciones crean un nue%o usuario llamado """data con contrase7a abc+ que s)lo se puede
usar cuando se conecte desde el equipo local 1localhost3 y le otorga 2nicamente los permisos SELEC+ EFSE*+
:P?AE y ?ELEE sobre todas las bases de datos alo$adas en el ser%idor4
H Crea un nue%o usuario
C*EAE :SE* I"""dataIJIlocalhostI E?EFE;EE? DK IabcI8
H #torga los permisos para poder manipular los datos
H sobre todas las bases de datos 1L.L3
G*AF SELEC+ EFSE*+ :P?AE+ ?ELEE #F L.L # I"""dataIJIlocalhostI
E?EFE;EE? DK IabcI .EH MA-MQ:E*EESMPE*MH#:* N MA-MC#FFECE#FSMPE*MH#:* N
MA-M:P?AESMPE*MH#:* N MA-M:SE*MC#FFECE#FS N 8
H *ecarga los permisos de las tablas 1en principio+ no es necesario porque
H G*AF debe hacerlo de /orma autom!tica3
;L:SH P*EOELEGES8
:na %er creado un usuario+ podemos consultar sus permisos con el comando SH#. G*AFS+ tal como podemos %er en
la ;igura P.
?esde la l9nea de comandos tambi'n se pueden e$ecutar otros programas+
como mysqladmin+ mysqlchecC+ mysqldump o mysqlsho".
Creaci3n de #a base de datos desde ,,My*dmin
,,My*dmin es una herramienta escrita en que permite la administraci)n de una base de datos de MySQL a tra%'s de
p!ginas "eb+ ya sea en local o de /orma remota a tra%'s de Enternet. Es un desarrollo de c)digo abierto y est! disponible
ba$o la licencia .
En la ;igura Q podemos %er la pantalla principal de la aplicaci)n. En el panel de la izquierda aparecen las bases de datos
que e,isten y entre par'ntesis se indica el n2mero de tablas que posee cada base de datos. En la parte principal de la
pantalla se indica la %ersi)n del ser%idor de MySQL y el usuario que se est! empleando para conectarse. En -AMPP+ por
de/ecto se emplea el usuario 0root0 sin contrase7a+ lo que supone una %ulnerabilidad del sistema ya que /acilita un posible
ataque. Para e%itarlo+ es con%eniente asignar una contrase7a al usuario 0root0 en MySQL y con/igurar la contrase7a para
phpMyAdmin en el /ichero con/ig.inc.php.
Adem!s+ en la p!gina principal e,isten %arias /unciones+ como crear una nue%a base de datos+ modi/icar los pri%ilegios o
importar y e,portar el esquema y los datos de una base de datos.
?esde la pantalla principal se puede crear una nue%a base de datos. :na %ez creada+ aparece la pantalla que podemos %er
en la ;igura 68 en esta pantalla se %isualiza la sentencia SQL que ha creado la base de datos y se puede indicar el nombre
para una nue%a tabla en la base de datos reci'n creada. En este 2ltimo caso+ tambi'n hay que indicar el n2mero de campos
1columnas3 que se quiere que tenga la tabla8 m!s adelante se pueden a7adir m!s campos en cualquier momento.
En la ;igura R podemos %er la pantalla de creaci)n de una nue%a tabla con dos campos. En esta pantalla se tiene que
indicar la de/inici)n de cada campo 1columna3 de la tabla+ como el nombre del campo+ el tipo de dato+ si admite %alor nulo+ si
es cla%e primaria+ etc. Esta pantalla cambia de aspecto seg2n el n2mero de campos que tenga la tabla8 por e$emplo+ en
la ;igura S podemos %er la misma pantalla pero cuando una tabla posee siete campos+ en %ez de una disposici)n %ertical la
de/inici)n de los campos adquiere una disposici)n horizontal.
Adem!s+ se tiene que seleccionar el motor de almacenamiento para la tabla. MySQL permite seleccionar di/erentes motores
de almacenamiento. La principal di/erencia entre los distintos motores reside en el soporte de las transacciones+ el mane$o
de las cla%es a$enas y el particionamiento de las tablas.
En la ;igura T podemos %er la pantalla de respuesta que aparece al crear una nue%a tabla. En esta pantalla /igura la
sentencia SQL de creaci)n de la tabla y tambi'n se puede modi/icar la estructura de la tabla reci'n creada.
:na %ez creada una tabla se pueden insertar datos en la misma. Para ello se emplea la opci)n Ensertar que muestra un
/ormulario como el de la ;igura U. En este /ormulario aparecen todos los campos que componen una tabla y para cada
campo se indica su tipo de dato. Cuando un campo es de tipo autoincremento la base de datos le asignar! un %alor de
/orma autom!tica+ pero de todas /ormas aparecer! en el /ormulario de inserci)n+ por lo que se debe de$ar %ac9o.
Por 2ltimo+ y tal como se ha e,plicado en el apartado anterior+ se debe emplear un usuario espec9/ico para conectarse desde
una p!gina "eb+ que tenga otorgados 2nicamente los permisos para manipular los datos 1SELEC+ EFSE*+
:P?AE y ?ELEE3. En la ;igura 5N podemos %er la pantalla de la opci)n Pri%ilegios+ donde se muestran todos los
usuarios que e,isten y los permisos que poseen. ?esde esta pantalla se puede acceder a la /unci)n agregar un nue%o
usuario que %emos en la;igura 55.
Acceso a la base de datos desde PHP
Desde PHP se puede acceder fácilmente a una base de datos en MySQL empleando las más de 50 funciones que existen.
Las principales funciones que se emplean para acceder a una base de datos son:
• mysql_connect(servidorBD, usuario, contraseña): abre una conexión con un servidor de bases de datos
de MySQL, devuelve un identificador que se emplea en algunas de las siguientes funciones o FALSE en caso de
error.
• mysql_close(identificador): cierra una conexión con un servidor de MySQL, devuelve T!E en caso de éxito
y FALSE en caso contrario.
• mysql_"in#(identificador): verifica que la conexión con el servidor de bases de datos funciona,
devuelve T!E en caso de éxito y FALSE en caso contrario.
• mysql_select_d$(nom$reBD, identificador): selecciona una base de datos, devuelve T!E en caso de éxito
y FALSE en caso contrario.
• mysql_query(sentencia, identificador): ejecuta una sentencia SQL y devuelve un resultado (SELE%T,
S&'(, E)*LA+, o DES%+BE, ...) o T!E (+,SET, !*DATE, DELETE, ...) si todo es correcto, o FALSE en caso
contrario.
• mysql_fect-_array(resultado): recorre un resultado, devuelve un array que representa una fila (registro)
o FALSE en caso de error (por ejemplo, llegar al final del resultado); al array se puede acceder de forma numérica
(posición de la columna) o asociativa (nombre de la columna).
• mysql_fetc-_assoc(resultado) y mysql_fetc-_ro.(resultado): ambas funciones son similares a la
anterior mysql_fect-_array(resultado), pero sólo permiten el acceso como array asociativo o con índices
numéricos respectivamente.
• mysql_affected_ro.s(identificador): devuelve el número de filas (tuplas) afectadas por la última operación si
fue del tipo +,SET, !*DATE, etc., que no devuelven un resultado.
• mysql_num_ro.s(resultado): devuelve el número de filas (tuplas) afectadas por la última operación si fue del
tipo SELE%T.
• mysql_free_result(resultado): libera la memoria ocupada por un resultado; en principio, se libera
automáticamente al finalizar la página, es necesario si en una misma página se realizan varias consultas con resultados
muy grandes.
El siguiente ejemplo muestra como visualizar todo el contenido de una tabla en una página web. En concreto, se conecta al
servidor local con el usuario ...data sin contraseña, selecciona la base de datos biblioteca, recupera todo el contenido de
la tabla li$ros y muestra los campos Titulo y esumen:
/01ml version234563 encodin#23iso7889:7430;
/<D'%T=*E -tml *!BL+% 37>>(?%>>DTD )&T@L 456 Strict>>E,3
3-tt"A>>...5.?5or#>T>1-tml4>DTD>1-tml47strict5dtd3;
/-tml 1mlns23-tt"A>>...5.?5or#>4:::>1-tml3 1mlAlan#23es3 lan#23es3;
/-ead;
/meta -tt"7equiv23%ontent7Ty"e3 content23te1t>-tmlB c-arset2iso7889:743 >;
/title;*rue$a de SELE%T y @ySCL/>title;
/>-ead;
/$ody;
/0"-"
>> Se conecta al SDBD
if(<(Eiden 2 mysql_connect(3local-ost3, 3...data3, 33)))
die(3ErrorA ,o se "udo conectar3)B

>> Selecciona la $ase de datos
if(<mysql_select_d$(3$i$lioteca3, Eiden))
die(3ErrorA ,o e1iste la $ase de datos3)B

>> Sentencia SCLA muestra todo el contenido de la ta$la 3$ooFs3
Esentencia 2 3SELE%T G F'@ li$ros3B
>> EHecuta la sentencia SCL
Eresultado 2 mysql_query(Esentencia, Eiden)B
if(<Eresultado)
die(3ErrorA no se "udo realiIar la consulta3)B

ec-o J/ta$le;JB
.-ile(Efila 2 mysql_fetc-_assoc(Eresultado))
K
ec-o J/tr;JB
ec-o J/td;J 5 EfilaLJTituloJM 5 J/>td;/td;J 5 EfilaLJesumenJM 5 J/>td;JB
ec-o J/>tr;JB
N
ec-o J/>ta$le;JB

>> Li$era la memoria del resultado
mysql_free_result(Eresultado)B

>> %ierra la cone1iOn con la $ase de datos
mysql_close(Eiden)B
0;
/>$ody;
/>-tml;
El siguiente ejemplo es similar al anterior, pero emplea una función llamada sql_dum"_result(resultado) que
visualiza todo el contenido del resultado de una consultaSELE%T en forma de tabla de HTML, sin tener que indicar uno a
uno los campos que componen el resultado; además, la primera fila de la tabla creada contiene los nombres de los campos
a modo de encabezados de las columnas de la tabla:
/01ml version234563 encodin#23iso7889:7430;
/<D'%T=*E -tml *!BL+% 37>>(?%>>DTD )&T@L 456 Strict>>E,3
3-tt"A>>...5.?5or#>T>1-tml4>DTD>1-tml47strict5dtd3;
/-tml 1mlns23-tt"A>>...5.?5or#>4:::>1-tml3 1mlAlan#23es3 lan#23es3;
/-ead;
/meta -tt"7equiv23%ontent7Ty"e3 content23te1t>-tmlB c-arset2iso7889:743 >;
/title;*rue$a de SELE%T y @ySCL/>title;
/>-ead;
/$ody;
/0"-"
>> Devuelve todas las filas de una consulta a una ta$la de una $ase de datos
>> en forma de ta$la de &T@L
function sql_dum"_result(Eresult)
K
Eline 2 JJB
E-ead 2 JJB

.-ile(Etem" 2 mysql_fetc-_assoc(Eresult))
K
if(em"ty(E-ead))
K
EFeys 2 array_Feys(Etem")B
E-ead 2 J/tr;/t-;J 5 im"lode(J/>t-;/t-;J, EFeys)5 J/>t-;/>tr;JB
N

Eline 52 J/tr;/td;J 5 im"lode(J/>td;/td;J, Etem")5 J/>td;/>tr;JB
N

return J/ta$le;J 5 E-ead 5 Eline 5 J/>ta$le;JB
N
>> Se conecta al SDBD
if(<(Eiden 2 mysql_connect(3local-ost3, 3...data3, 33)))
die(3ErrorA ,o se "udo conectar3)B

>> Selecciona la $ase de datos
if(<mysql_select_d$(3$i$lioteca3, Eiden))
die(3ErrorA ,o e1iste la $ase de datos3)B

>> Sentencia SCLA muestra todo el contenido de la ta$la 3$ooFs3
Esentencia 2 3SELE%T G F'@ li$ros3B
>> EHecuta la sentencia SCL
Eresultado 2 mysql_query(Esentencia, Eiden)B
if(<Eresultado)
die(3ErrorA no se "udo realiIar la consulta3)B
>> @uestra el contenido de la ta$la como una ta$la &T@L
ec-o sql_dum"_result(Eresultado)B

>> Li$era la memoria del resultado
mysql_free_result(Eresultado)B
>> %ierra la cone1iOn con la $ase de datos
mysql_close(Eiden)B
0;
/>$ody;
/>-tml;
Recomendaciones
Recuerda que las páginas que contengan código PHP tienen que tener la extensión 5"-". Si modificas alguna página web
que ya tengas hecha de prácticas anteriores para añadirle código PHP, tendrás que cambiarle la extensión y corregir todos
los enlaces que apunten a esa página.
La página web Build Your Own Database Driven Website Using PHP & MySQL explica en cuatro partes (Introduction, The
Database Server, PHP server-side scripting language y Displaying Information on a Web page) cómo construir un sitio web
con información procedente de una base de datos en MySQL.
Recuerda: nunca te conectes a una base de datos con el usuario "root" desde una página web. Emplea un usuario
específico que tenga el mínimo posible de permisos. Por ejemplo, si en una página web sólo necesitas mostrar el contenido
de las tablas de una base de datos, pero no necesitas actualizar o insertar nuevos datos, utiliza un usuario que sólo tenga el
permiso SELE%T sobre esa base de datos. De este modo reducirás los posibles problemas de seguridad.
Fíjate que en varias páginas se pide en la lista desplegable para seleccionar el país, mostrar los países a partir de la
tabla paises de la base de datos. Cuando una parte de una página web se repita en varias páginas, lo mejor es aislar el
código común en un fichero independiente e incluirlo en aquellos puntos donde haga falta.
Utiliza esta misma técnica para almacenar en un fichero independiente los datos necesarios para establecer la conexión con
la base de datos; de este modo, si algo cambia, sólo lo tendrás que cambiar en un fichero.
Aunque no se pide implementarlo en esta práctica, cuando se muestra un listado a partir de una consulta a una base de
datos y no existe un límite para el número de resultados devueltos es conveniente mostrar el listado paginado para evitar
que se devuelva una página web enorme que aumente su tiempo de transmisión y dificulte su lectura. ¿Te atreves a
hacerlo?
El manual de MySQL te lo puedes descargar en diferentes formatos de su sitio web para tenerlo siempre a mano y poder
hacer las búsquedas de información rápidamente. Cuando lo descargues, elige la versión correspondiente a tu servidor de
MySQL.
Si quieres guardar una copia de seguridad de una base de datos, puedes emplear la opción Exportar de phpMyAdmin que
se muestra en la Figura 12.
httpD//ides.eb-es/pro*e,to/pro*e,toBpra,0>BphpBm*s+lBa,,esoBbaseBdeBdatos