|Ratings|| ||Unique User Downloads|| ||Download Rankings|
|Not enough user ratings||Total: 165 ||All time: 8,850 This week: 161|
This class implements a session handler that store PHP sessions in PostgreSQL table using PDO.
It takes a PDO connection object to access a PostgreSQL database that can perform the PHP session handling functions to store and retrieve session data in a table of a database accessible via the specified PDO object.
The class object can be assigned as the current PHP session save handler.
|PHP usually stores session data in files but it also allows to define custom session handler classes that can store session data in other types of container.
This class implements a session handler that stores data in a database. Despite the most used database with PHP is MySQL, PostgreSQL is also very popular.
This class supports storing session data in PostgreSQL database using PDO.
Saving PHP sessions in Postgres Database.
> Disclaimer: Storing sessions in PHP via files(default) and other caching systems like Memcache / memcached / Redis is definitely faster but there was this use case where I had to use RDBMS for storing sessions and hence this. Use this only when it is a strict requirement to save sessions in a relational database
Single file (PGSessions.php)
PostgreSQL 9.5+ [Dependency on using UPSERT]
PHP 7.0+ (Might be compatible with 5.4 plus but not tested)
\PDO Connected Database Object
Create "sessions" database as provided below.
CREATE TABLE "sessions" (
"id" TEXT NOT NULL UNIQUE,
"last_updated" BIGINT NOT NULL,
"expiry" bigint NOT NULL,
"data" TEXT NOT NULL);
CREATE INDEX "valid_sessions" ON "sessions"("id");
CREATE INDEX "nonexpired_sessions" ON "sessions"("id","expiry");
Steps to use:
$pdo_connection = new PDO(...);
$sessions_handler = new PGSessions($pdo_connection);
$_SESSION['something'] = 'foo';
$_SESSION['something_else'] = 'bar';
echo session_id(),'<br/>',$_SESSION['something'],'<br />',$_SESSION['something_else'] ;
Rest of your script
Before ending your script
//Note that session_write_close is not REQUIRED to be called on each page since we register_shutdown_function=true (second parameter = true in session_set_save_handler).
||Applications that use this package
No pages of applications that use this class were specified.
If you know an application of this package, send a message to the author to add a link here.