NAME
HTTP::Session::Store::DBI - store session data in DBI for HTTP::Session
SYNOPSIS
use HTTP::Session;
my $session = HTTP::Session->new(
store => HTTP::Session::Store::DBI->new( {
dbh => ["dbi:SQLite:dbname=xxx", '', '', {RaiseError => 1}]
} ),
state => ...,
request => ...,
);
DESCRIPTION
store session data in DBI. read HTTP::Session for usage.
CONFIGURATION
- dbh
-
ArrayRef which passes to DBI->connect(@$_)
or Instance of DBI->connect
- expires
-
session expire time(in seconds)
- sid_table
-
the table name where session stores. default is 'session'
- sid_col
-
the session_id column name. default is 'sid'
- data_col
-
the data column name. default is 'data'
- expires_col
-
the expires column name. default is 'expires'
- clean_thres
-
default is '0.001'. because DBI do NOT delete expired data itself, we have code in sub delete
if ( rand() < $self->clean_thres ) { my $time_now = time(); $dbh->do(qq~DELETE FROM $sid_table WHERE expires < $time_now~); }
set it to 0 if we do NOT want it.
TABLE SQL
SQLite:
CREATE TABLE session (
sid VARCHAR(32) PRIMARY KEY,
data TEXT,
expires INTEGER UNSIGNED NOT NULL,
UNIQUE(sid)
);
METHODS
- select
- update
- delete
- insert
-
for internal use only
SEE ALSO
AUTHOR
Fayland Lam, <fayland at gmail.com>
COPYRIGHT & LICENSE
Copyright 2008 Fayland Lam, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.