Appendix D. Managing Sessions in the Database Tier

In Chapter 8 we discussed the development of session-based applications using the PHP session management features. In this appendix, we:

  • Discuss the motivation for storing session variables in the database tier of a web database application

  • Show how PHP session handlers are written to implement user-defined methods

  • Develop a fully functional set of PHP handlers that use a table in a MySQL database to store session variables

Using a Database to Keep State

HTTP is a stateless protocol that allows applications to distribute resources across more that one web server. This allows an application to distribute requests across many web servers, thus dividing the load and permitting scaling of the application.

One of the main problems for session-based web applications is scalability. Implementing session management in the middle tier of an application forces all HTTP requests to be processed by a particular web server. To provide session support, all HTTP requests that belong to a session must be processed in the context of the session variables. Consider an application that holds the contents of a shopping cart using session variables. An HTTP request that submits an order must be processed by reading the session variables that hold the state of the cart. Figure D-1 shows the three-tier architecture of a web database application, with the session store in the web server environment. This is the approach described in Chapter 8.

Figure D-1. Three-tier ...

Get Web Database Applications with PHP, and MySQL now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.