Access to sqlite3 database through perl (script example)

Welcome to Linux Screw! If you're new here, you may want to subscribe our RSS feed.

By publishing this post I try to help people who want to get access to popular and simple database engine sqlite through perl script. I use sqlite to store e-mails statistics at small mail server in order to retrieve information about users' mail activity like average response time, sent and received messages and etc. There is perl script that is used to get this data per every user or get summary statistics. This script is to be run by web server (I use Apache) and has name index.cgi in my case.

Here is part of it:

#!/usr/bin/perl
use DBI;
print "Content-type: text/html\n\n";
print "<html><head><title>perl and sqlite example script</title></head><body>";
$dbh = DBI->connect( "dbi:SQLite:dbname=/tmp/mail_data.db","", "", { RaiseError => 1, AutoCommit => 0 });

my $fst = $dbh->selectall_arrayref("SELECT min(time_1),max(time_1) FROM mail_data");
foreach my $row (@$fst) {
my ($fst_pr,$lst_pr) = @$row;
print "oldest entry in database: ".gmtime($fst_pr)." gmt<br>newest entry in database: ".gmtime($lst_pr);
}

print "</body>";
print "</html>";
$dbh->disconnect;

After you load this example through any web browser (please read your web server’s manual on how to allow cgi/perl script exec, for example here), script will read sqlite database that is located at /tmp/mail_data.db and display minimal and maximal values of field time_1 from mail_data table.

In order to run this script it’s necessary to install perl, sqlite3 and perl-DBI-SQLite cpan module.

You may also be interested in:
CGI Perl scripts debugging (solve 500 Internal Server Error)

Share This
Related posts:
CGI Perl scripts debugging (solve 500 Internal Server Error)
Dump ipcad output into sqlite3
Tiny perl script for UDP flooding
Quick copy/paste MySQL Replication Manual
Web server oneliner with bash
 
 
 
Your Ad Here


1 Response to “Access to sqlite3 database through perl (script example)”


  1. 1 Graham

    Might be worth posting the database.

    Or one you have with sample data.

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word