ADODB セッション

8/2にバージョンが4.91になった際に、セッション周りが新しくなったようです。

http://phplens.com/lens/adodb/docs-adodb.htm#changes

こんな感じで使うようです。

include_once("adodb/session/adodb-session2.php");
$options['table'] = 'mytablename';
ADOdb_Session::config($driver, $host, $user, $password, $database,$options);
session_start();

完全に仕様変更してますね・・。

今までだとこんな感じでした。グローバル変数をつかうあたりが嫌な感じでした。

$ADODB_SESSION_DRIVER='mysql';
$ADODB_SESSION_CONNECT='localhost';
$ADODB_SESSION_USER ='scott';
$ADODB_SESSION_PWD ='tiger';
$ADODB_SESSION_DB ='sessiondb';
include('adodb/session/adodb-session.php');
session_start();

includeするファイルがそもそも違うようで、今までのバージョンのも(adodb-session.php)使えます。そのために最近まで気づきませんでした。


テーブル構造も変わってます。mysqlの例ですが

(新)

CREATE TABLE sessions2(
    sesskey VARCHAR( 64 ) NOT NULL DEFAULT '',
    expiry TIMESTAMP NOT NULL ,
    expireref VARCHAR( 250 ) DEFAULT '',
    created TIMESTAMP NOT NULL ,
    modified TIMESTAMP NOT NULL ,
    sessdata LONGTEXT DEFAULT '',
  PRIMARY KEY ( sesskey ) ,
  INDEX sess2_expiry( expiry ),
  INDEX sess2_expireref( expireref )
);

(旧)

create table sessions (
    SESSKEY char(32) not null,
    EXPIRY int(11) unsigned not null,
    EXPIREREF varchar(64),
    DATA text not null,
  primary key (sesskey)
);

timestampの列ができたのはいいことだとおもいます。

新マニュアル http://phplens.com/lens/adodb/docs-session.htm
旧マニュアル http://phplens.com/lens/adodb/docs-session.old.htm