[PHP-users 27664] Re: MySQLの場合のsession_handler.phpについて

Tadashi Jokagi ml @ elf.no-ip.org
2005年 11月 28日 (月) 17:00:36 JST


      ぢょ〜@よくきたなです.

fujisan @ lg.sunnyday.jpさんの「[PHP-users 27663] MySQLの場合のsession_handler.phpについて」から
>ただ、上記で配付されている「セッション管理サンプルプログラム」では、
>PostgreSQLをベースに書かれており、MySQL用の関数で置き換えているのですが、
>
>特にsession_handler.phpのコードの直し方がよくわかりませんでした。
>
>参考になるページがあれば知りたいのですが。。。

      まずは公式サイトじゃないでしょうか.スタックアスタリスクの該当ペー
    ジで使用されている PHP はかなり古いので,直接そのままの関数が見つか
    らない場合がありますね.探せば大体出てくるようですが.

http://php.net/pg_connect
http://php.net/pg_query (pg_exec に相当)
http://php.net/pg_affected_rows  (pg_cmdtuples に相当)

http://php.net/mysql_connect (pg_connect に相当)
http://php.net/mysql_query (pg_query に相当)
http://php.net/mysql_affected_rows (pg_affected_rows に相当)

#生で PostgreSQL・MySQL の API を実行したことないので「恐らく」ですが(苦笑

    後は上記を参考に変更していけばいいんじゃないでしょうか?

>PS.
>ロリポップでは、session.save_handler=filesになっているみたいなので、
>実際にきちんと動くのか不安です。

    session.save_handler は http://php.net/session によると
    PHP_INI_ALL なので ini_set() すればいいと思います.

>それと、気になるのが、rdateの値が、00000000000000となっていることです。
>
>phpMyAdminのSQL実行ページから、テーブルを作る際、
>
>CREATE TABLE session(
>(中略)
>rdate timestamp dafault 'now'
>);
>としましたが、
>MySQLでは、default値はリテラルでないといけないということなのですが、
>'now'の部分はどのようにしたらよいか悩んでいます。

    INSERT するときに自分で time() などを用いて今の時間を突っ込めばい
    いんじゃないでしょうか?

      ちなみに ADOdb にはデータベースセッションハンドラーがあるようで
    す.日本語マニュアルもあるみたいなので参考にしてみるといいでしょ
    う.

■原文
http://phplens.com/lens/adodb/docs-session.htm
■訳文
http://www.souken.co.jp/tech/php/adodb/docs-session_ja.htm

-- 
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Shibuya city mailto:elf @ elf.no-ip.org
YokukitanaII http://elf.no-ip.org/
Yokukita blog http://blog.poyo.jp/
Yokukita wiki http://wiki.poyo.jp/


PHP-users メーリングリストの案内