---
name: "CGI::Session::Driver::sqlite"
section: "3pm"
platform: "linux"
package: "perl-cgi-session"
version: "4.49-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/CGI::Session::Driver::sqlite"
---

# CGI::Session::Driver::sqlite(3pm)

CGI::Session driver for SQLite

## NAME

CGI::Session::Driver::sqlite - CGI::Session driver for SQLite

## SYNOPSIS

```
    $s = CGI::Session->new("driver:sqlite", $sid, {DataSource=>'/my/folder/sessions.sqlt'});
    $s = CGI::Session->new("driver:sqlite", $sid, {Handle=>$dbh});
```

or

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

## DESCRIPTION

**sqlite** driver stores session data in SQLite files using DBD::SQLite DBI driver. More details see CGI::Session::Driver::DBI, its parent class.

## DRIVER ARGUMENTS

Supported driver arguments are *DataSource* and *Handle*. **At most** only one of these arguments can be set while creating session object.

*DataSource* should be in the form of `"dbi:SQLite:dbname=/path/to/db.sqlt"`. If `"dbi:SQLite:"` is missing it will be prepended for you. If *Handle* is present it should be database handle (`$dbh`) returned by **DBI::connect()**.

As of version 1.7 of this driver, the third argument is **NOT** optional. Using a default database in the temporary directory is a security risk since anyone on the machine can create and/or read your session data. If you understand these risks and still want the old behavior, you can set the `"DataSource"` option to *'/tmp/sessions.sqlt'*.

## BUGS AND LIMITATIONS

None known.

## LICENSING

For support and licensing see CGI::Session
