PHP Web applications that use sessions can save data to session files and/or to a database. Session data typically has an expiration timestamp. When session data is saved to a database, the session data is not automatically removed from the database when the expriation time is exceeded. What are some ways to remove this stale information?

Here are a few suggestions for the removal of this stale data:

  • use a cron (unix) or scheduler (windows) to execute SQL to remove the rows
  • use a function that can be accessed manually which executes the SQL to remove the rows
  • when the sessions are initiated, have SQL code be automatically executed to delete the code
DELETE FROM session 
WHERE expiry < unix_timestamp();

Useful other functions for session expiry timestamp(s):

FROM_UNIXTIME(expiry)

converts the expiry to MySQL datetime timestamp 

UNIX_TIMESTAMP()

MySQL UNIX timestamp in number of epoch seconds

FROM_UNIXTIME(UNIX_TIMESTAMP())

MySQL functions that show current datetime using a UNIX timestamp