Thanks for repyling. Not initializing $id seemed to be the key. I don't recall seeing anything about it in the docs though. The author didn't include "use strict;" so it wasn't clear if $id had been previously initialized or not. I was able to get the following simplified code to insert records into the sessions table:
#!/usr/local/bin/perl
use strict;
use warnings;
use Apache::Session::MySQL;
#if you want Apache::Session to open new DB handles:
my ( $id, %hash );
my $user = 'user';
my $pass = 'pass';
my $host = 'host';
my $table = 'sessions';
my $db = 'apache_session';
tie %hash, 'Apache::Session::MySQL', $id, {
DataSource => "dbi:mysql:$db:$host",
UserName => $user,
Password => $pass,
TableName => $table,
LockDataSource => "dbi:mysql:$db:$host",
LockUserName => $user,
LockPassword => $pass,
};
The example was obtained from the module documentation for Apache::Session::MySQL (Synopsis section). A similar example is in the Apache::Session::Store::MySQL documentation under the Configuration section. The working code above is closer to the Apache::Session::MySQL example.
If I choose to include
use Apache::Session::Generate::MD5;
in the program, does that mean that Apache::Session will automatically use MD5 to generate $id (rather than whatever the default method is)? What would be the advantage?
|