DBI

603 views
537 views

Published on

Tema: DBI
Curso de Perl avanzado Barcelona.pm 2012

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
603
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DBI

  1. 1. DBI
  2. 2. ¿Qué es?• Database independent interface – ODBC – JDBC
  3. 3. ¿Qué es?• Acceso común a bases de datos – mysql_connect($server, $username, $password) – pg_connect($connection_string, $connect_type) – db2_connect($database, $username, $password) DBI->connect($dsn, $user, $pass)
  4. 4. Conceptos• DBD -> DataBase Driver Cada driver se encarga de “hablar” con la DB• DSN -> Data Source Name Cadena de conexión• DBH -> Database handler Representa una conexión a una base de datos• STH -> Statement handler Respresenta una sentencia SQL
  5. 5. Conectar a una base de datosuse DBI;my $dbh = DBI- >connect(“dbi:DRIVER:PARAM1=VALOR1;PARAM2=VAL OR2”, $user, $pass, $dbi_opts);…$dbh->disconnect;DRIVER: mysql, SQLite, Pg…PARAMX=VALORX: en la doc del driver ;)Recomendación:{ „RaiseError‟ => 1, „PrintError‟ => 0, „AutoCommit‟ => 0 } en $dbi_opts
  6. 6. Ahora que tengo una conexiónmy $sth = $dbh->prepare(„INSERT INTO tabla (nombre, apellidos) VALUES (?, ?)‟);$sth->execute(„Larry‟, „Wall‟);$sth->finish;$dbh->do(„INSERT…‟, undef, „Larry‟, „Wall‟);
  7. 7. Ahora que tengo una conexiónmy $sth = $dbh->prepare(„INSERT INTO tabla (nombre, apellidos) VALUES (?, ?)‟);while (…) { $sth->execute($name, $lastname);}$sth->finish;
  8. 8. ¿Qué son los interrogantes? Bind Params• http://xkcd.com/327/
  9. 9. Recuperando Datosmy $sth = $dbh->prepare(„SELECT * FROM tabla WHERE nombre = ?‟);$sth->execute(„Larry‟);FETCH$sth->finish;
  10. 10. Fetching… selectrow_array selectrow_arrayrefselectrow_hashref selectall_arrayref selectall_hashref
  11. 11. Recuperando Datosmy $sth = $dbh->prepare(„SELECT * FROM tabla WHERE nombre = ?‟);$sth->execute(„Larry‟);while (my $row = $sth->fetchrow_hashref){ say “$row->{„nombre‟} $row->{„apellido‟}”;}$sth->finish;
  12. 12. DBDs Interesantes• DBD::mysql• DBD::sqlite• DBD::Pg• DBD::Oracle• DBD::CSV• …
  13. 13. DBD curiosos• DBD::iPod• DBD::Salesforce• DBD::RDFStore• DBD::Proxy• …

×