KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm using DBI to query a SQLite3 database. What I have works, but it doesn't return the columns in order. Example: Query: select col1, col2, col3, col4 from some_view; Output: col3, col2, col1, col4 3, 2, 1, 4 3, 2, 1, 4 3, 2, 1, 4 3, 2, 1, 4 ... (values and columns are just for illustration) I know this is happening because I'm using a hash , but how else do I get the column names back if I only use an array? All I want to do is get something like this for any arbitrary query: col1, col2, col3, col4 1, 2, 3, 4 1, 2, 3, 4 1, 2, 3, 4 1, 2, 3, 4 ... (That is, I need the output is in the right order and with the column names.) I'm very much a Perl novice, but I really thought this would be a simple problem. (I've done this before in Ruby and PHP, but I'm having trouble tracking down what I'm looking for in the Perl documentation.) Here's a pared down version of what I have at the moment: use Data::Dumper; use DBI; my $database_path = '~/path/to/db.sqlite3'; $database = DBI->connect( "dbi:SQLite:dbname=$database_path", "", "", { RaiseError => 1, AutoCommit => 0, } ) or die "Couldn't connect to database: " . DBI->errstr; my $result = $database->prepare('select col1, col2, col3, col4 from some_view;') or die "Couldn't prepare query: " . $database->errstr; $result->execute or die "Couldn't execute query: " . $result->errstr; ########################################################################################### # What goes here to print the fields that I requested in the query? # It can be totally arbitrary or '*' -- "col1, col2, col3, col4" is just for illustration. # I would expect it to be called something like $result->fields ########################################################################################### w
Tags (comma-separated)
Save Edits
Cancel