http://www.perlmonks.org?node_id=379181


in reply to Apache::Session::MySql using a_session

Hi,

Correct, I would not want to change the table directly (even though that would be easier at this point). I try setting values like the example shows (ie. visa_number). But it never makes it back to the database table. Here is some example code from my script:

... Other code ....

my %session;
tie %session, 'Apache::Session::MySQL', $cookie, {
DataSource => 'dbi:mysql:sessions', #these arguments are
UserName => '*******', #required when using
Password => '*******', #MySQL.pm
LockDataSource => 'dbi:mysql:sessions',
LockUserName => '*******',
LockPassword => '*******'
};

$session{a_session}=localtime();
$session{somenumber}='123456';

... Other code ....

untie %session;
undef %session;

Again, nothing seems to make it back into the table. =(

Any Ideas?
--DawgTool
  • Comment on Re: Apache::Session::MySql using a_session

Replies are listed 'Best First'.
Re^2: Apache::Session::MySql using a_session
by jeyroz (Monk) on Jun 15, 2005 at 02:54 UTC

    While I am sure this problem has been solved since the original post was submitted I figured I would make a suggestion in regard to viewing session.a_session data in MySQL. What is stored in the session.a_session isn't visible by "SELECT a_session FROM sessions WHERE id=?" ... Apache::Session serializes the data before inserting it.

    Once your session has been created and your additional session-data has been assigned to your tied hash ($session{foo} = "bar";), dump %session on a SUBSEQUENT VISIT and view the available data. If all works as planned, you will see foo => "bar" along with your session id.

    Another (down & dirty) way to verify that session.a_session is indeed receiving the specified data is to "less session.MYD" (MySQL data file) on your web server ... assuming you have access. The output may be hard to understand but you should be able to recognize a session variable here or there.
    Just a thought.

    author => jeyroz