Some errors are really hard to find: They appear only sometimes or only on live systems or within complex source that can't run manually using a debugger. Adding debug output might help, but might also be confusing as the DBI error code 4 "statement contains no result" does.
Suchergebnisse mit Tag „DBI“
CPAN has everything. Nearly everything and one of the modules is DBD::Sybase which connects to Microsoft SQL servers as well as Sybase ASE and iAnywhere servers, but there's a trick.
Look at the title and you're done. No need to add a text to this post if everything is said in the title. Not really? France is too small to hold half of the world's population? No way! My computer told me that 4.294.967.296 people live in France - and computers don't fail, you know?
mySQL clients tend to loose their connections from time to time and DBD::mysql could reestablish the connection automatically if it's lost using the mysql_auto_reconnect DSN connection string parameter - creating other problems.
Die mySQL NULL Falle
SELECT-INSERT-UPDATE - Kombinationen sind unzuverlässig, die Gefahr eines doppelten Datensatzes der eigentlich einmalig sein sollte, ist zu groß. Die Alternativen funktionieren aber auch nicht immer, denn mySQL verhält sich inkonsistent.
SQL has some drawbacks, the worst one might be the SQL injection chance. There are many ways to avoid them but few of them are really working, one of them is using bind values by replacing all values by ? and passing the real values at execution time.
mySQL servers have their own mind and sometimes just disappear. They go away from a client leaving it alone if the complete server is dying, if a client is doing unexpected things and sometimes even without any known reason.
Writing a DBI database driver
DBI is the universal Perl database interface but it's using a so-called DBD driver module for each database type. I've been searching but didn't find a DBD module fitting my needs and so I started writing a new one.
Statistics are important for many projects, but not all of them are easy to build. Many long-term stats involve heavy SQL queries and some may of these queries may also freeze database servers or tables. Caching intermediate results may limit these queries to a minimum.