phpman > perldoc > CGI::Session::Driver::postgresql(3pm)

Markdown | JSON | MCP    

NAME
    CGI::Session::Driver::postgresql - PostgreSQL driver for CGI::Session

SYNOPSIS
        use CGI::Session;
        $session = CGI::Session->new("driver:PostgreSQL", undef, {Handle=>$dbh});

DESCRIPTION
    CGI::Session::PostgreSQL is a CGI::Session driver to store session data in a PostgreSQL table.

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 BYTEA NOT NULL
        );

    and within your code use:

        use CGI::Session;
        $session = CGI::Session->new("driver:PostgreSQL", undef, {Handle=>$dbh, ColumnType=>"binary"});

    Please note the *ColumnType* argument. PostgreSQL's text type has problems when trying to hold a
    null character. (Known as "\0" in Perl, not to be confused with SQL *NULL*). If you know there
    is no chance of ever having a null character in the serialized data, you can leave off the
    *ColumnType* attribute. Using a *BYTEA* column type and "ColumnType => 'binary'" is recommended
    when using Storable as the serializer or if there's any possibility that a null value will
    appear in any of the serialized data.

    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,
        });

    For more details see CGI::Session::Driver::DBI, parent class.

    Also see sqlite driver, which exercises different method for dealing with binary data.

COPYRIGHT
    Copyright (C) 2002 Cosimo Streppone. All rights reserved. This library is free software and can
    be modified and distributed under the same terms as Perl itself.

AUTHORS
    Cosimo Streppone <cosimo AT cpan.org>, heavily based on the CGI::Session::MySQL driver by Sherzod
    Ruzmetov, original author of CGI::Session.

    Matt LeBlanc contributed significant updates for the 4.0 release.

LICENSING
    For additional support and licensing see CGI::Session

Generated by phpman v3.7.12 Author: Che Dong Under GNU General Public License
2026-06-13 19:27 @216.73.217.2
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!