$inserted == 0E0?

phillup on 2005-05-10T17:10:16

Posted here to help any others that have this problem.

I updated my Debian workstation yesterday.

Suddenly, my web based application that I work on was telling me that inserting data into the mysql database was inserting zero rows. But, the data was actually being inserted!

my $rows = $sth->execute($data, $to, $add);


Always returned a value of '0E0' with no errors or warnings, when it should be returning a value of '1'. But, only when running under mod_perl.

However, all of my tests passed with flying colors... and eveything worked perfectly in a command line environment.

Something was obviously different between the two environments but no amount of poking on my part could figure out what that something was.

(Lesson learned: tee the output of apt-get upgrade to a file to record what software was changed!)

Anyways... I noticed I had two libmysqlclient* libraries installed...

After removing libmysqlclient10, leaving libmysqlclient12, everything works again.

Apparently, libmysqlclient10 is used by mysql navigator... which I don't use any way.

---

Does anyone know how mod_perl decides which mysql client library to load... and how I could have narrowed down the problem? I'm thinking the problem may be DBI related, since I use Apache::DBI in the mod_perl environment but not in the bash environment... but that is just a guess.

Right now, finding a solution was just blind luck on my part! I was minutes away from restoring my backup, but kept poking at it since the problem is not likely to go away as Debian stabilizes towards the next version.

TIA


moo

kungfuftr on 2005-05-10T19:16:57

it's whichever version your newest dbd::mysql is compiled against, etc.

Re:moo

phillup on 2005-05-10T21:09:55

Wouldn't that be the same under both environments if @INC is the same under both environments?

Re:moo

kungfuftr on 2005-05-11T02:15:39

depends in on the order in which your @INC directories get searched