|Last Updated|| ||Ratings|| ||Unique User Downloads|| ||Download Rankings|
|2017-04-22 (1 month ago) ||Not enough user ratings||Total: 46 ||All time: 8,858 This week: 632|
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.
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.