Checking to see if a call to the DB worked

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Stymiee

    Checking to see if a call to the DB worked

    I'm writing a perl script to send out a joke of the day for my website.
    It is accessing a mysql db (I use php for the rest of the site. This will
    be a cron job so I figured perl would be better suited for that). I can
    get it to do everything it is supposed to do to send a the joke via
    email. But what I'm trying to do now is add some error checking so if
    there is a problem, I can be notified about it.

    What I need is to know how to check if a query was succcessful or not.
    For example:

    Code:

    sub changeCurrentJO TD(){
    $dbh = DBI->connect("DBI:m ysql:database=$ serverDb;host=
    $serverName;por t=$serverPort", $serverUser,$se rverPass);
    $dbh->do("UPDATE jokes_content_t est SET jotd='Yes' WHERE
    jotd='today'");
    $dbh->disconnect;
    }


    How do I check to see programatically if this was successful or not?
  • Nick Santos

    #2
    Re: Checking to see if a call to the DB worked

    change your do code to include "or &sqlerror" or some other error handling
    subroutine like so:

    $dbh->do("UPDATE jokes_content_t est SET jotd='Yes' WHERE
    jotd='today'") or &sqlerror;

    #if it doesn't do it, do the subroutine sqlerror

    sub sqlerror{
    $dead = $dbh->err();
    # err() returns the sql error
    number in my sql. You can then use
    # if statements to handle the
    errors you think will occur
    # if you don't know what the errors
    are, then try to force some
    # and use
    $deadstr=$dbh->errstr();
    # which will then give you
    information in a sentence about the error that occurred
    # so in the future you can do
    better error handling and let it recover from the error
    # once you know it occurred
    print "error occurred - error number $dead - $deadstr";
    # and maybe
    die;
    }

    I hope I've been helpful and told you what you wanted to know
    -Nick

    "Stymiee" <stymiee@hotmai l.com> wrote in message
    news:Xns94429A7 8C9B7Fstymiee@2 16.196.97.136.. .[color=blue]
    > I'm writing a perl script to send out a joke of the day for my website.
    > It is accessing a mysql db (I use php for the rest of the site. This will
    > be a cron job so I figured perl would be better suited for that). I can
    > get it to do everything it is supposed to do to send a the joke via
    > email. But what I'm trying to do now is add some error checking so if
    > there is a problem, I can be notified about it.
    >
    > What I need is to know how to check if a query was succcessful or not.
    > For example:
    >
    > Code:
    >
    > sub changeCurrentJO TD(){
    > $dbh = DBI->connect("DBI:m ysql:database=$ serverDb;host=
    > $serverName;por t=$serverPort", $serverUser,$se rverPass);
    > $dbh->do("UPDATE jokes_content_t est SET jotd='Yes' WHERE
    > jotd='today'");
    > $dbh->disconnect;
    > }
    >
    >
    > How do I check to see programatically if this was successful or not?[/color]


    Comment

    Working...