[僕] CGI::Session::MySQL で、使用するテーブルを変更する。

僕ト云フ事

たろマークはてなブックマーク

2005年06月19日

[cgi][perl][session] CGI::Session::MySQL で、使用するテーブルを変更する。

普通に、CGI::Session で、MySQL 使ってるときにデフォルトと違うテーブル名を使いたい場合は、

$CGI::Session::MySQL::TABLE_NAME = 'hoge';

とかやればできるけど、CGI::Application::Plugin::Session 経由で変更できないっぽい。cgiapp_init() でやっても setup() でやってもデフォルトに上書きされる。Plugin の仕組みを追えば分かりそうだけど、とりあえず別な方法を模索。
CGI::Session::PostgreSQL だと、

$session = new CGI::Session("driver:PostgreSQL", undef,
                                                {Handle=>$dbh, TableName=>'my_sessions'});

って指定できるので、CGI::Session::MySQLでもやりたい。
ということで、CGI::Session::MySQL の patch。

*** MySQL.pm.org	2005-06-20 22:27:17.000000000 +0900
--- MySQL.pm	2005-06-20 22:30:56.000000000 +0900
***************
*** 126,131 ****
--- 126,135 ----
  
      }
      
+     if ( defined $args->{TableName} ) {
+         $TABLE_NAME = $args->{TableName};
+     }
+     
      require DBI;
  
      $self->{MySQL_dbh} = $args->{Handle} || DBI->connect(

さて、作者さんに patch を送りつけてやりたいけど、英語が不安だ('A`)

blog comments powered by Disqus

コメント

# AzureStone [TypeKey Profile Page] (2005年06月21日 01:24)

> さて、作者さんに patch を送りつけてやりたいけど、
> 英語が不安だ('A`)
今なら、まかせろw
と逝ってみたりw

# AzureStone [TypeKey Profile Page] (2005年06月21日 01:35)

I am 海賊たろ.

CGI::Session::MySQL で、使用するテーブルを変更する。
The table used is changed with CGI::Session::MySQL.

CGI::Application::Plugin::Session 経由で変更できない。
It is not revokable by way of CGI::Application::Plugin::Session.

cgiapp_init() で実行しても setup() で実行してもデフォルトに上書きする。
I overwrite a default even if I carry it out in setup() even if I carry it out in cgiapp_init().

Plugin の仕組みを追えば分かるが、私は、別な方法を模索した。
I understood it if I chased a mechanism of Plugin, but I groped for another method.

それが以下である。
It is equal to or less than it.

$session = new CGI::Session("driver:PostgreSQL", undef,
{Handle=>$dbh, TableName=>'my_sessions'});
CGI::Session::MySQL でも使用したいと思う。
I want to use even CGI::Session::MySQL.

そこで私は、パッチを作った。
Therefore I made a patch.

それが以下になる。
It becomes equal to or less than it.


*** MySQL.pm.org 2005-06-20 22:27:17.000000000 +0900
--- MySQL.pm 2005-06-20 22:30:56.000000000 +0900
***************
*** 126,131 ****
--- 126,135 ----

}

+ if ( defined $args->{TableName} ) {
+ $TABLE_NAME = $args->{TableName};
+ }
+
require DBI;

$self->{MySQL_dbh} = $args->{Handle} || DBI->connect(

# 海賊たろ [TypeKey Profile Page] (2005年06月21日 01:44)

うわー、ありがとうございます!ヽ( ´∀`)ノ
しかし、もう送ってしまったのよね
送った時点で書けばよかったぁぁ orz

お手数かけて申し訳ない(´・ω・`)

# AzureStone [TypeKey Profile Page] (2005年06月21日 01:47)

> うわー、ありがとうございます!ヽ( ´∀`)ノ
(;^_^A アセアセ…
よけいなお世話すまそ。。。

> しかし、もう送ってしまったのよね
アベーシw

> 送った時点で書けばよかったぁぁ orz
書かなかった方が、よかったかもw
間違えだらけの英文w

> お手数かけて申し訳ない(´・ω・`)
問題ナスw