Skip to main content

Perl und SQLite - Mini-Howto

SQLite ist eine Datenbank-Engine, die ohne Serverdämon und Konfiguration auskommt. Die Daten werden in eine normale Datei geschrieben.

Ich beschreibe zunächst das Erstellen der Datenbank. In diesem Beispiel habe ich das mit dem mitgelieferten Binary ohne Perl erledigt. Mit Perl wäre das natürlich auch problemlos möglich.

Datenbank erstellen:

sqlite3 status.db "CREATE TABLE status (key INTEGER PRIMARY KEY, name TEXT, age INT);"

Eine Zeile einfügen:

sqlite3 status.db "INSERT INTO status (name, age) VALUES ('Heinz Mustermann','34');"

Datenbank auslesen:

sqlite3 status.db "SELECT * FROM status";

So, jetzt wollen wir aber auch mittels Perl auf die Datenbank zugreifen:

use strict;
use DBI;
my $dbargs = {AutoCommit => 0, PrintError => 1};
my $dbh = DBI->connect("dbi:SQLite:dbname=status.db", "", "", $dbargs);

# eine Zeile einfuegen
$dbh->do("INSERT INTO status (name, age) VALUES ('Michael Mustermann', '25');");
if ($dbh->err()) { die "$DBI::errstr\n"; }
$dbh->commit();

# Zeilen ausgeben
my ($name, $age) = "";
my $res = $dbh->selectall_arrayref("SELECT name, age FROM status;");
foreach my $row (@$res) {
  ($name, $age) = @$row;
    print("Name: $name - Alter: $age\n");
}

if ($dbh->err()) { die "$DBI::errstr\n"; }
$dbh->disconnect();

SQL syntax: http://www.sqlite.org/lang.html

sqlite command line: http://www.sqlite.org/sqlite.html