CPAN: SQlite Spaltennamen

Beitrag lesen

Man muss ja nicht zwingend alles in SQL machen. Vernünftige Datenbankschnittstellen bieten auch Introspektion der verwendeten Namen an.

use DBI qw();  
my $DB = 'mickymaus.sqlite';  
my $TABLE = 'mickymaus';  
  
my $dbh = DBI->connect("DBI:SQLite:db=$DB", undef, undef, {AutoCommit => 1, RaiseError => 1, sqlite_unicode => 1,});  
$dbh->do("create table $TABLE (id text, fnord text)");  
my %col = %{ $dbh->column_info(undef, undef, $TABLE, undef)->fetchall_hashref('COLUMN_NAME') };  
  
$dbh->begin_work;  
for my $pair (qw(id:foo id:bar id:quux fnord:23 fnord:42 fnord:fnord:fnord)) {  
    my ($col, $val) = split qr/:/, $pair, 2;  
    die "$col invalid" unless exists $col{$col};  
    $dbh->do("insert into $TABLE ($col) values (?)", {}, $val);  
}  
$dbh->commit;