ADODBセッションでmysqliを使いたい
↓ADODBセッション
http://phplens.com/lens/adodb/docs-session.htm
要は
include_once("adodb/session/adodb-session2.php"); ADOdb_Session::config( $driver, $host, $user, $password, $database, $options = false ); session_start();
でPHPのセッションデータがDBに保持されるので、webが複数サーバに分散しているときなどは便利です。
対応しているdriverについては、mysql, postgres, oci8 あたりであろうことは想像がつくのですが、特に明記されていません。(ソースを見ると、oci8po, oracle, oci805あたりもいけそう、pdo_* は想定してなさそう。※未検証)
また、デフォルトじゃないポートで立ち上がったMySQLに対してmysqli接続ができませんでした。理由は↓と同じです。
http://d.hatena.ne.jp/yoshihi6/20080201/1201837964
mysqliも想定してなさそうです。
mysql接続のほうは、文字コードセット云々のため使いたくないし、セッション用に別途mysql接続を用意するのも微妙なので、困りました。
解決策として、強引に
$GLOBALS['ADODB_SESS_CONN'] =& $conn; // 接続済!
で一見何とかなった風にはなりますが、adodb-session2.php のソースを見たところ、mysql独自の処理が挟まっているので、念のため以下の対処をしました。
・・・
そもそもこれ使っている人ってあまりいないんですかねえ。
EthnaでDBセッション使うと session_save_handler の前で接続が切られてしまったり等もあり、memcachedとか、データをNFSで共有とかが主流なのかなあと感じました。