TEMA 10 – PROGRAMACIÓN CON PERL (IV) (2015)

Apunte Español
Universidad Universidad Autónoma de Barcelona (UAB)
Grado Genética - 2º curso
Asignatura Técnicas instrumentales
Profesor R.E.
Año del apunte 2015
Páginas 3
Fecha de subida 07/04/2015
Descargas 10

Vista previa del texto

TEMA 10 – PROGRAMACIÓN CON PERL (IV) Perl y bases de datos Para trabajar con bases de datos desde Perl necesitaremos instalar los siguientes módulos: - Módulo DBI (DataBase Interface) Módulos DBDs (DataBase Drivers). Instalaremos uno u otro según el sistema gestor de BBDD que usemos: o DBD::Oracle o DBD::mysql (nuestro caso).
Instalación: encontraremos ayuda en CPAN: http://search.cpan.org/~capttofu/DBD-mysql-4.027/lib/DBD/mysql.pm Conexión a bases de datos locales desde Perl Para conectarnos a una base de datos pondremos use delante del módulo DBI y del módulo DBD que vayamos a usar. Lo deberemos poner en dos funciones separadas, ya que son dos módulos distintos.
Crearemos un objeto de conexión. Cumplirá la misma función que cumpliría el FILEHANDLE, es decir, la conexión, en este caso con cierta base de datos. Para la conexión necesitaremos tres elementos o variables escalares: - - $dsn: indica la conexión.
o localhost: indica que se debe conectar con el propio ordenador que estamos usando. Si no, deberíamos poner la dirección IP del ordenador con el que queramos conectarnos.
o Habrá que especificar el puerto de instalación. Si hemos hecho una instalación por defecto, el puerto será el 3306.
$usuario: ‘root’ por defecto.
$password: la contraseña que sea.
Escoger una base de datos Para ejecutar una función directamente escribiremos >do(“instrucción”); de MySQL $objeto- Alterar una base de datos Para ejecutar una instrucción de MySQL también lo podemos hacer por pasos. Usaremos las siguientes funciones: - prepare(): el programa comprueba si hay algún error en la instrucción.
execute(): ejecuta la instrucción.
finish(): vaciará el objeto.
Introducir información en una base de datos Si tuviésemos mucha información guardada de una matriz podríamos usar un bucle foreach: - foreach $dato (@datos) { my $insert = "INSERT INTO tabla1 (campo1) VALUES ('dato1')"; my $sth = $dbh>prepare($insert); $sth -> execute(); $sth -> finish(); } Al trabajar con Perl podríamos dejar los valores abiertos. Cuando pongamos el execute ya escribiremos los valores que queramos insertar.
En este caso, dentro del foreach sólo pondríamos el execute. El finish lo podríamos poner dentro o fuera, según la función exacta del finish. Por si acaso, lo dejaremos fuera.
Obtener información de una base de datos En el caso del SELECT, la función fetchrow_array() nos devolverá una matriz. Cada elemento será una columna de cada fila.
Además, gracias a un bucle while podremos acceder a todas las filas de cierta tabla.
...