Don't know if this appropriate or not, but I have recently been working a lot with cgi and mysql and after a certain amount of debugging hassle all sql statements were moved to a subroutine enabling us to see
1) what we actually tried to run
2) how long , how many records
3) any error returned
print "\nadding url $addurl to table sajter";
&runsql("insert into ah reason='updated' add=$serverid")
print "->\n"; #end debug info
sub runsql {
my $myquery=$_[0];
my $exitonerror=$_[1] if($_[1]);
my $starttime=time();
unless($dbh){
$sqldebug .= "\nTry SQL: connect to db $hostname, 'uptime_admin'";
$dbh = Mysql->Connect($hostname, 'uptime_admin', 'loguser', 'poopypant
+s') or die "Can not connect to db\nINFO: $sqldebug";
$sqldebug .= "\nConnect OK'";
}
$sqldebug .= "\nTry $myquery";
$runsql_sth = $dbh->query($myquery);
my $endtime=time();
if($runsql_sth){
$numrows=$runsql_sth->affectedrows;
$sqldebug .= " - $numrows rows";
}else{
$errmsg = $dbh->errmsg();
$sqldebug .= "\n -- ERROR -- '$errmsg' ";
if($exitonerror){
die "severe SQL error occurred INFO: $sqldebug";
}
}
$sqldebug .= sprintf " -- Done in %d secs ",$endtime-$starttime;
return $runsql_sth;
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|