summaryrefslogtreecommitdiff
path: root/DBI_EXAMPLES
diff options
context:
space:
mode:
Diffstat (limited to 'DBI_EXAMPLES')
-rwxr-xr-xDBI_EXAMPLES/DBI_sqlite_alternative.pm59
1 files changed, 59 insertions, 0 deletions
diff --git a/DBI_EXAMPLES/DBI_sqlite_alternative.pm b/DBI_EXAMPLES/DBI_sqlite_alternative.pm
new file mode 100755
index 0000000..d65f8d6
--- /dev/null
+++ b/DBI_EXAMPLES/DBI_sqlite_alternative.pm
@@ -0,0 +1,59 @@
+package journal_database;
+use DBD::SQLite;
+use DBI;
+use Data::Dumper;
+my $dbh = DBI->connect("dbi:SQLite:dbname=./database/journals.db","","");
+
+
+CREATE TABLE journals(
+ id INTEGER PRIMARY KEY NOT NULL, --optional
+ date INTEGER NOT NULL,
+ fulltext TEXT,
+ image_url TEXT
+);
+
+sub remove_from_db{
+ my $id_to_remove = shift;
+ my $sth = $dbh->prepare(
+ "DELETE FROM journals ".
+ "WHERE id=$id_to_remove;"
+ );
+ $sth->execute();
+}
+sub get_entry_by_date {
+ my $date_int = shift;
+ my $sth = $dbh->prepare(
+ "SELECT *".
+ "FROM journals ".
+ "WHERE `date`=? "
+ );
+ $sth->execute($date_int);
+ return $sth->fetchrow_hashref();
+}
+
+sub add_journal_entry{
+ my $entry = shift;
+ my $sqlCmd = "insert into journals values (?,?,?,?);" ;
+# ."on duplicate key update ".
+# "id = ?,".
+# "date = ?,".
+# "fulltext = ?,".
+# "image_url = ?,".
+# ";";
+ my $sth = $dbh->do($sqlCmd,
+ undef,
+ $entry->{id},
+ $entry->{date} || time(),
+ $entry->{fulltext},
+ $entry->{image_url}
+ );
+ }
+
+ my $entry = {};
+ $entry->{id} = '12';
+ $entry->{date} = '123432';
+ $entry->{fulltext} = 'this is a test of the fulltext';
+ $entry->{image_url} = 'this is a test of the image url';
+ add_journal_entry($entry);
+ print Dumper get_entry_by_date(123432);
+ remove_from_db(12);