 |
|
 |
|
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.
|
|
 |
|
 |