Hmmm... on further examination it looks like you're trying to pass an arbitrary SQL statement to your sub and expect it to be executed. I assume you know this is generally a bad idea (why are you using a script to do this if you can access the DB through a shell? And if you can't access the DB via a shell and want to issue commands to the DB remotely, your technique is incredibly insecure...) but nevertheless it's complicating your "quoting" problems. $dbh->quote() is really designed to correctly escape the
values in an SQL statement, not an entire statement at once. As things stand you have no way of picking out the values (the things that need quoting) from the commands (the things that should be passed to the DB just as they are.)
You may need to consult your DB documentation and resort to a series of REGEX's to seek out and properly quote the funky characters in your arbitrary SQL string. $dbh->quote() is normally smart enough to do this for you, but not when you're trying to process an entire string at once.
Gary Blackburn
Trained Killer