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

HTTP::Session, DBI

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.