Finally... After running into various issues with DBI and the SQL process simply cutting out, I decided to write up a solution.
When an SQL server looses an autorization packet or goes down for a reboot the results can be disasterous. User or system entries half added or half retrieved can leave the database integrity questionable.
Commits really *really* help with this problem, allowing semi-posted data to be discarded if the insert(s) or update(s) aren't successful. But what about "one up" simple queries where a commit really isn't practical? You should always use commits when possible, but again what about perserving the SQL call?
Welcome to Persistent Fault Tolerant SQL!
Making SQL easier requires your own design, with subroutines to delete, update, insert or return rows as you'd like. I've done the work for you.

sql.pl Preable

Using this code is really simple and ensures that in the event of a query or sql server failure, it is persistently retried until it is successful. You may want to add a timeout for such a thing or a number or retries but I really see no point as this was designed for Apache::DBI and back-end thread processing nodes where a blocking lock is practical. When a user cancels a page load, the resulting SQL connection would terminate anyways. This type of solution is also extremely practical for background ajax requests when returning an error simply wouldn't be visible or recognized.
This script is designed to be separated from the main program and then accessed through a do("sql.pl"); routine. This allows the subs defined within to be used elsewhere in the program. It is also designed to run in combination with Apache::DBI, this is why there are no disconnects.

sql.pl Non-Returning Subroutines

&del_sql Calls &sql&mod_sql Calls &sql&put_sql Calls &sql

sql.pl Returning Subroutines

&row_sql Return a single ROW from a table&get_sql Return a single COLUMN from a table&hash_sql Return an ARRAY of HASHES for ALL RESULTS.
Use sql.pl as you wish, its now yours.

Rolling your own persistent-ness

The important thing when rolling your own persistent connections is simple. Its constructed with:
- Until
- (While retrying) - Sleep for a second and possibly warn
- Until
- - Eval
- - (While retrying) - Sleep for a second and possibly warn

When putting a smiley right before a closing parenthesis, do you:

Use two parentheses: (Like this: :) )
Use one parenthesis: (Like this: :)
Reverse direction of the smiley: (Like this: (: )
Use angle/square brackets instead of parentheses
Use C-style commenting to set the smiley off from the closing parenthesis
Make the smiley a dunce: (:>
I disapprove of emoticons
Other