session_pgsql_add_error> <sesam_settransaction
Last updated: Mon, 29 Oct 2007

CXLVIII. PostgreSQL Session Save Handler

简介

注意: 本扩展模块在 Windows 平台下不可用。

This module provides an additional session save handler for the session module using » PostgreSQL as a storage system. A user-level session storage function may also be used - session_set_save_handler(), but this module is written in C and therefore could be twice as fast, compared to a session save handler written in PHP.

Session PgSQL is designed to scale any size of web sites and offers some advanced features:

session tables are created automatically
automatic session table vacuum
better garbage collection
multiple PostgreSQL servers support
automatic database server failover (switching)
automatic database server load balancing if there are multiple PostgreSQL servers.
short circuit UPDATE

需求

You need at least PHP >= 4.3.0, and PostgreSQL >=7.2.0 as database server. libpq that comes with PostgreSQL 7.2.0 or later (and header files to build) and » libmm (and header files).

安装

Short installation note:

  • Untar the tar.gz archive into php4/ext (Latest official releases can be found at SourceForge » PHP Form Extension Project)
  • If the new directory is now called something like session_pgsql. You should name it to session_pgsql (except you only want to build it as self-contained php-module).
  • Run ./buildconf in php4
  • Run configure --with-session-pgsql (and your other options)
  • make; make install

运行时配置

这些函数的行为受 php.ini 的影响。

PostgreSQL session save handler is still under development. Refer to the README file in the source distribution for configuration details.

Table definitions

Session table definition


CREATE TABLE php_session (
 sess_id      text,
 sess_name     text,
 sess_data     text,
 sess_created    integer,
 sess_modified   integer,
 sess_expire    integer,
 sess_addr_created text,
 sess_addr_modified text,
 sess_counter    integer,
 sess_error     integer,
 sess_warning    integer,
 sess_notice    integer,
 sess_err_message  text,
 sess_custom    text
);

CREATE INDEX php_session_idx ON php_session USING BTREE (sess_id);

  

警告

If you use HASH for INDEX, you'll have a deadlock problem when the server load is very high. Even if it's unlikely to have a deadlock under normal operation, it can occur. Do not use HASH for INDEX.

You may change the session table as long as all fields are defined.

Application variables table definition


CREATE TABLE php_app_vars (
 app_modified    integer,
 app_name      text,
 app_vars      text
);

  

Contact Information

I have at the moment not very much time to further develop this extension. I will implement more and more features in the near future.

If you have comments, bug fixes, enhancements or want to help developing this, you can drop me a mail at » yohgaki@php.net. Any help is very welcome.

目录

session_pgsql_add_error Increments error counts and sets last error message
session_pgsql_get_error Returns number of errors and last error message
session_pgsql_get_field Get custom field value
session_pgsql_reset Reset connection to session database servers
session_pgsql_set_field Set custom field value
session_pgsql_status Get current save handler status


add a note add a note User Contributed Notes
PostgreSQL Session Save Handler
There are no user contributed notes for this page.

session_pgsql_add_error> <sesam_settransaction
Last updated: Mon, 29 Oct 2007