Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: selectall_hashref structure

by Anonymous Monk
on Dec 24, 2009 at 11:43 UTC ( [id://814215]=note: print w/replies, xml ) Need Help??


in reply to selectall_hashref structure

#!/usr/bin/perl -- use strict; use warnings; use DBI; use DBD::SQLite; use Data::Dumper; { my $dbh = DBI->connect( 'dbi:SQLite:dbname=test.sqlite', undef, undef, { RaiseError => 1, PrintError => 1, }, ); eval { $dbh->do('CREATE TABLE evkeypairs (id INTEGER PRIMARY KEY NOT +NULL,key TEXT,value TEXT);'); $dbh->do(q!INSERT INTO evkeypairs (key, value) VALUES ('foo',' +bar');!); $dbh->do(q!INSERT INTO evkeypairs (key, value) VALUES ('kung', +'foo');!); } or warn "$@"; print Dumper( $dbh->selectall_hashref('select * from evkeypairs ', + [ 'id','key']) ),"\n"; print Dumper( $dbh->selectall_hashref('select * from evkeypairs ', + 'id') ),"\n"; $dbh->disconnect; use autodie qw' unlink '; unlink 'test.sqlite'; } __END__ $VAR1 = { '1' => { 'foo' => { 'value' => 'bar', 'id' => '1', 'key' => 'foo' } }, '2' => { 'kung' => { 'value' => 'foo', 'id' => '2', 'key' => 'kung' } } }; $VAR1 = { '1' => { 'value' => 'bar', 'id' => '1', 'key' => 'foo' }, '2' => { 'value' => 'foo', 'id' => '2', 'key' => 'kung' } };

Replies are listed 'Best First'.
Re^2: selectall_hashref structure
by 0xbeef (Hermit) on Dec 24, 2009 at 13:37 UTC
    I am actually trying to avoid having the above hash structure in the related function I mentioned, since this function deals with many different attributes that I find convenient to provide via the hash.

    If I were to use a similar hash structure to your example in this function, it would now need to be called in the following (tedious) way:

    myfunction($id,{ kung => { value => foo }, foo => { value => bar}});

    Here is the ideal hash structure with some example attributes that I am trying to attain through the select:

    Attributes now: $VAR1 = { '49CBAF4B' => { 'occurrences' => 999, 'object' => 'device123', 'timestamp' => 1261660376, 'value' => 90, 'max' => 96 } };

    If this cannot be done, I might be forced to map the results to a hash with the desired layout, or look at a different approach altogether.

    Niel

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://814215]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2024-04-16 14:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found