Perl Diver 2.31
Main Environment Variables Perl Default Values Perl Config - Summary Perl Config - Full Installed Modules List Directory uptime Docs

Module Documentation
Details and documentation about a specific module, including version and documentation (if available). Note that while links to perldoc.com and search.cpan.org are provided, the module may be part of a larger distribution. If you reach a File Not Found page on either site, please try the parent module.

CGI::Session::Driver::DBI

Name CGI::Session::Driver::DBI
Version 4.43
Located at /usr/local/share/perl5
File /usr/local/share/perl5/CGI/Session/Driver/DBI.pm
Is Core No
Search CPAN for this module CGI::Session::Driver::DBI
Documentation CGI::Session::Driver::DBI
Module Details CGI::Session::Driver::DBI


NAME

CGI::Session::Driver::DBI - Base class for native DBI-related CGI::Session drivers


SYNOPSIS

    require CGI::Session::Driver::DBI;
    @ISA = qw( CGI::Session::Driver::DBI );


DESCRIPTION

In most cases you can create a new DBI-driven CGI::Session driver by simply creating an empty driver file that inherits from CGI::Session::Driver::DBI. That's exactly what sqlite does. The only reason why this class doesn't suit for a valid driver is its name isn't in lowercase. I'm serious!

NOTES

CGI::Session::Driver::DBI defines init() method, which makes DBI handle available for drivers in Handle - object attribute regardless of what \%dsn_args were used in creating session object. Should your driver require non-standard initialization you have to re-define init() method in your .pm file, but make sure to set 'Handle' - object attribute to database handle (returned by DBI->connect(...)) if you wish to inherit any of the methods from CGI::Session::Driver::DBI.


STORAGE

Before you can use any DBI-based session drivers you need to make sure compatible database table is created for CGI::Session to work with. Following command will produce minimal requirements in most SQL databases:

    CREATE TABLE sessions (
        id CHAR(32) NOT NULL PRIMARY KEY,
        a_session TEXT NOT NULL
    );

Your session table can define additional columns, but the above two are required. Name of the session table is expected to be sessions by default. You may use a different name if you wish. To do this you have to pass TableName as part of your \%dsn_args :

    $s = CGI::Session->new('driver:sqlite', undef, {TableName=>'my_sessions'});
    $s = CGI::Session->new('driver:mysql', undef,
    {
        TableName=>'my_sessions',
        DataSource=>'dbi:mysql:shopping_cart'.
    });

To use different column names, change the 'create table' statement, and then simply do this:

    $s = CGI::Session->new('driver:pg', undef,
    {
        TableName=>'session',
        IdColName=>'my_id',
        DataColName=>'my_data',
        DataSource=>'dbi:pg:dbname=project',
    });

or

    $s = CGI::Session->new('driver:pg', undef,
    {
        TableName=>'session',
        IdColName=>'my_id',
        DataColName=>'my_data',
        Handle=>$dbh,
    });


DRIVER ARGUMENTS

Following driver arguments are supported:

DataSource
First argument to be passed to DBI->connect(). If the driver makes the database connection itself, it will also explicitly disconnect from the database when the driver object is DESTROYed.

User
User privileged to connect to the database defined in DataSource.

Password
Password of the User privileged to connect to the database defined in DataSource

Handle
An existing DBI database handle object. The handle can be created on demand by providing a code reference as a argument, such as <sub{DBI-connect}>>. This way, the database connection is only created if it actually needed. This can be useful when combined with a framework plugin like the CGI::Application::Plugin::Session manpage, which creates a CGI::Session object on demand as well.

Handle will override all the above arguments, if any present.

TableName
Name of the table session data will be stored in.


LICENSING

For support and licensing information see CGI::Session

Perl Diver brought to you by ScriptSolutions.com © 1997- 2024