HTMLpointHTMLpoint HTMLpoint.com


 Metodi DBI->connect e DBI->disconnect



Comencemos ahora a ver las posibilidades que ofrece DBI, para pasar después a las de Pg.

Hablar de este módulo no es empresa fácil, dada su complejidad y lo completo que es.

DBI viene definido como un "trade de unión" entre una aplicación y uno o más módulos de base de datos: y son estos módulos los que desempeñan la parte más importante del trabajo: veamos las posibilidades que nos ofrece DBI.

Para empezar, como hemos visto más arriba, tenemos que instruir al intérprete sobre el módulo que hay que utilizar y por tanto es necesario introducir el script con la línea "use DBI;" (que omitiremos en este y en todos los ejemplos sucesivos); se aconseja, además, el uso de "use strict;".
En este punto, podemos conectarnos a la base de datos: para ello, emplearemos el método "connect", cuya sintaxis es:

$database = DBI->connect($db_name, $username, $password)
|| die $DBI::errstr;


Analicemos ahora el método: $db_name es el tipo y el nombre de la base de datos a la que queremos conectarnos, que, como ya hemos visto antes, podría ser "dbi:Pg:dbname=prova_db". Más en general, la sintaxis es:

dbi:DriverName:database_name
dbi:DriverName:database_name@hostname:port
dbi:DriverName:database=database_name;host=hostname;port=port


Como veis, las opciones para la conexión son múltiples, y permiten también la conexión a bases de datos remotas especificando, además del nombre de la db, el host en el que se encuentra y la puerta.

Vienen después el nombre de usuario y la clave de acceso: si éstos tienen valor "undef", que es diferente de estar vacíos, DBI intentará utilizar las variables DBI_USER y DBI_PASS, advirtiendo en el caso de que éstas no estén definidas.

Una vez terminado el trabajo en la base de datos, podremos desconectarnos simplemente con el método:

$database->disconnect;

Lo que muchos olvidan es que se aconseja desconectarse de la base de datos una vez que el script haya terminado de trabajar: y aunque el script, una vez acabado, no interactúa ya con la base de datos, es mejor siempre explicitar la desconexión. Si veis un mensaje como: "Database handle destroyed without explicit disconnect during global destruction.", quiere decir que no os habéis desconectado de la base de datos antes del final del script.


  Torna a inizio pagina