The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

DBIx::Lookup::Field - Create a lookup hash from a database table

SYNOPSIS

  use DBI;
  use DBIx::Lookup::Field qw/dbi_lookup_field/;

  $dbh = DBI->connect(...);
  my $inst_id = dbi_lookup_field(
      DBH   => $dbh,
      TABLE => 'institution'
      KEY   => 'name',
      VALUE => 'id',
  );

  print "Inst_A has id ", $inst_id->{Inst_A};

DESCRIPTION

This module provides a way to construct a hash from a database table. This is useful for the situation where you have to perform many lookups of a field by using a key from the same table. If, for example, a table has an id field and a name field and you often have to look up the name by its id, it might be wasteful to issue many separate SQL queries. Having the two fields as a hash speeds up processing, although at the expense of memory.

EXPORTS

dbi_lookup_field()

This function creates a hash from two fields in a database table on a DBI connection. One field acts as the hash key, the other acts as the hash value. It expects a parameter hash and returns a reference to the lookup hash.

The following parameters are accepted. Parameters can be required or optional. If a required parameter isn't given, an exception is raised (i.e., it dies).

DBH

The database handle through which to access the table from which to create the lookup. Required.

TABLE

The name of the table that contains the key and value fields. Required.

KEY

The field name of the field that is to act as the hash key. Required.

VALUE

The field name of the field that is to act as the hash value. Required.

WHERE

A SQL 'WHERE' clause with which to restrict the 'SELECT' statement that is used to create the hash. Optional.

BUGS

None known at this time. If you find any oddities or bugs, please do report them to the author.

AUTHOR

Marcel Grünauer <marcel@codewerk.com>

COPYRIGHT

Copyright 2001 Marcel Grünauer. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

DBI(3pm).