ARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA
LSC
2003-1
5307
Bases de Datos I
PRÁCTICA No.
LABORATORIO
DE Licenciatura en Sistemas Computacionales
DURACI ÓN (HORA)
11
NOMBRE DE LA PRÁCTICAMantenimiento de una Base de Datos
(Altas y Consultas)
2
1 INTRODUCCION
El lenguaje Perl será utilizado para fungir como enlace entre los archivos html y el administrador
de bases de datos MySql, y a través de su código se insertaran y extraerán los datos almacenados
en las bases de datos para la realización de altas y consultas con instrucciones de mysql.
2. OBJETIVO (COMPETENCIA)
Diseñar los programa de altas y consultas a las bases de datos, para el almacenamiento y extracción de los datos en forma confible y segura.
Formuló
Lissethe Gpe.
Lamadrid Lopez
Revisó
Monica C. Lam Mora
Aprobó Autorizó
Miguel Ángel Martínez
Romero
3. FUNDAMENTO
Primero, se tendrá el código html indicándole en el formulario la conexión con la operación de altas a través del programa insert.pl que utiliza el comando insert en la instrucción de mysql :
PROGRAMA HTML PARA ALTAS. <html><!--comentarios--> <head> <title>datos generales</title> </head> <body> <BODY Background=fondo_flores_ro[1].gif>
<H2 ALIGN=center><font color="purple" face="Bradley Hand ITC"><strong> <font face="Bradley Hand ITC">Registro de Articulos</H2><hr>
<center> <h2><i></i></h2>
<FORM Action="cgi-bin/insert.pl" METHOD=Post> se indica el uso de insert.pl para la alta
<TABLE border=0;>
<tr><td>Numero de Identificacion: </td> <td Colspan=1><input type=text name="id"></td> <tr><td>Nombre:</td>
<td Colspan=3><input type=text name="nombre"></td> <tr><td>Precio:</td>
<td Colspan=3><input type=text name="precio"></td> <td align=center>
<input type="submit" name=boton1 value="Alta"></td> </tr>
</table> </form>
<FORM Action="http://148.231.83.12/~bdi208/Principal.html"> NOTE COMO SE HACE EL ENLACE <input type="submit" name=boton2 value="Regresar"></td>
</body> </html>
PROGRAMA PERL insert.pl
Conectaremos a la base de datos con el método connect, ejecutaremos una
consulta con los métodos prepare para hacer un insert es decir dar una alta en la
base de datos. Este es el ejemplo:
#!/usr/bin/perl –w conexion con perl y warnings (notificaciones) use strict;
use CGI; use DBI;
my $q = new CGI;
my $db="Productos_78295";
my $tabla="articulos"; Se dan datos de la base de datos, table, usuario, etc. my $driver="mysql";
my $usuario="bdi208"; my $clave="adyta.2";
my $id;
my $nombre; variables privadas para parametros my $precio;
print $q->header("text/html"); indicacion uso de html #print "<BR><TABLE BORDER BGCOLOR=pink>"; print $q->start_html(-title=>"informacion"); print "\n"; $nombre =$q->param('nombre'); $id =$q->param('id'); $precio =$q->param('precio'); my $dbh=DBI->connect("dbi:$driver:$db",$usuario,$clave)
|| die "\n error al abrir la base de datos"; my $resultado = $dbh->do("insert into $tabla (id, nombre, precio)
values('$id','$nombre','$precio');") || warn "error al insertar datos"; también puede utilizarse el prepare y execute para el insert print " <CENTER>\n";
print " <TABLE Border=1 >\n";
print " <TR><TH colspan=2>Datos</TH></TR>\n";
print " <TR><Td>Nombre :</Td><td>$nombre</td></TR>\n"; print " <TR><Td>id :</Td><td>$id</td></TR>\n";
print " <TR><Td>Precio :</td><td>$precio</td></tr>\n"; print " </TABLE>\n";
print " </CENTER>\n";
$dbh->disconnect || warn "\nFallo al desconectarse"; print $q->end_html();
Para efectuar las Consultas verifique la practica 10 donde se hace una busqueda de consulta individual. Tambien, en la CONSULTA GENERAL, puede hacerse lo siguiente:
#!/usr/bin/perl -w use CGI qw(:standard); use DBI;
print header(),
start_html(-title=>'Consulta General',-BGCOLOR=>"#80FFBB"), end_html;
$db="nombre de la base de datos"; $tabla="nombre de la tabla"; $driver="mysql";
$usuario="cuenta del susuario donde estara hospedado el proyecto"; $clave="password";
$hostname="148.231.83.12"; $error=0;
$codigo_ev_x=param('cod_evento_x'); if(!$codigo_ev_x){
print "<font color=black><font face=Verdana><h1>Introducir el codigo del evento_x a modificar!</h1></font>"; }else{
$dbh=DBI->connect("dbi:$driver:$db",$usuario,$clave)||die "\n Error al abrir la base de datos"; $sth=$dbh->prepare("select * from $tabla where cod_ev_x='$codigo_ev_x'");
$er=$sth->execute(); NOTE EL USO DE PREPARE Y EXECUTE TAMBIEN PUEDE USAR DO
print "<p><form method=POST action=\"modificar_evento_x.pl\">\n"; este seria otro codigo if($er=="0E0"){
print "<center><font face=Verdana><font color=black><br><br><br>"; print "<h1><font color=black>Evento Inexistente </h1>";
print "</font></center>"; }
else{
print "<table border=2 bgcolor=#FFFFFF>\n";
print "<tr><td colspan=16 bgcolor=#FFF000><font color=#FF0000><center><h2><font face=Verdana>Resultado</h2></center></font></td></tr>";
print "<tr><td><font face=Verdana><b>Codigo</b></td><td><font face=Verdana><b>Codigo de elemnto</b></td><td><font face=Verdana><b>Codigo de otro atributo</b></td></tr>";
AQUI SE COLOCAN TODas LAS ETIQUETAS DE LOS ATRIBUTOS DE LA TABLA PARA VISUALIZAR
LOS DATOS COMPLETOS DEL TUPLE Y POSTERIORMENTE SE APLICA EL METODO HASHING PARA SACAR LA INFORMACION EN BASE A LA REFERENCIA Y EXTRACCION DE LOS DATOS, COMO A CONTINUACION SE MUESTRA:
while( $ref=$sth->fetchrow_hashref()) {
print "<tr><td><font face=Verdana>$ref->{'cod_X'}</td><td><font face=Verdana><input type=\"textfield\"
name=\"codigo\" value=\"$ref->{'codigo'}\"></td><td><font face=Verdana><input type=\"textfield\" name=\"cod_atributo x\" value=\"$ref->{'cod_atributo_x'}\"></td\"></td></tr>\n";
}
print "<tr><td align=right colspan=2>\n";
print "<input type=\"submit\" value=\"Modificar\"></td></tr>\n"; print "</table>";
print "</center>"; $sth->finish(); }
$dbh->disconnect || warn "\fallo al desconectarse"; }
CALCULOS Y REPORTE
El alumno dejara listo sus programas para que el maestro pueda accesar y probar su
funcionamiento ya se en el laboratorio o via internet.
5 RESULTADOS Y CONCLUSIONES
Al finalizar la práctica el alumno será capaz de implementar la conexión entre html, perl, mysql y
codificar programas para realizar altas y consultas a una base de datos.
6 ANEXOS
4 PROCEDIMIENTO (DESCRIPCIÓN)
A EQUIPO NECESARIO MATERIAL DE APOYO
Computadora con acceso al servidor Mysql Práctica impresa