Unix/Linux Go Back    


CentOS 7.0 - man page for cgi::session::driver::dbi (centos section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


CGI::Session::Driver::DBI(3)   User Contributed Perl Documentation   CGI::Session::Driver::DBI(3)

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 = new CGI::Session('driver:sqlite', undef, {TableName=>'my_sessions'});
	   $s = new CGI::Session('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 = new CGI::Session('driver:pg', undef,
	   {
	       TableName=>'session',
	       IdColName=>'my_id',
	       DataColName=>'my_data',
	       DataSource=>'dbi:pg:dbname=project',
	   });

       or

	   $s = new CGI::Session('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 CGI::Application::Plugin::Session, 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 v5.16.3				    2008-07-16		     CGI::Session::Driver::DBI(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 02:10 AM.