[DBD-SQLite] problem with sqlite under mod_perl

Dondi Michael Stroma dstroma at gmail.com
Fri Mar 19 01:42:39 GMT 2010


Hello,

With a command line perl script I created and populated an sqlite3
database. When I tried to access the db file in a mod_perl
application, all I get is an error called "not an error". I can't do
anything without this supposedly nonerror error. It seems there were a
few posts on this list a few months ago about this problem, and a bug
report filed, but neither seemed to go anywhere.

I have DBD::SQLite 1.29 and mod_perl 2.04. I checked to make sure my
command line script and mod_perl were using the same DBD::SQLite
versions. The filename for the loaded module is the same on both and I
only have one version on my system anyway.

In a command line script, I do this:
print $dbh->{sqlite_version} . "\n";
print "$DBD::SQLite::sqlite_version\n";

and I get:
3.6.22
3.6.22

In a mod_perl handler, I do this:
warn $dbh->{sqlite_version} . "\n";
warn "$DBD::SQLite::sqlite_version\n";

and I get this in the apache error log:
3.3.6
3.6.22

Now, how is it possible for it to be two different versions at the
same time? I think this is where the problem lies.

Coincidentally the sqlite package on my system is version 3.3.6,
although I never used it to manipulate the database file in question.
I tried "yum remove sqlite" but it wanted to remove about 27 packages,
including yum itself (!), rpm (!), httpd, mod_perl, php, etc.

I don't know why DBD::SQLite is reporting two different versions under
mod_perl or why running under mod_perl would make a difference. Is
this module written to transparently take advantage of mod_perl in
some special way that causes it to break when DBD and the system
sqlite package are different versions? It appears the only solution
might be to downgrade to a version of DBD::SQLite that is equivalent
to 3.3.6 sqlite?

Thanks for any help



More information about the DBD-SQLite mailing list