"Chas. Owens" schreef:

> eval {
>        $sql = qq {
>                INSERT INTO table (
>                        field1,
>                        field2,
>                        field3,
>                        field4,
>                        field5
>                )
>                VALUES ( ?, ?, ?, ?, ? )
>        };
> 
>        $sth = $mysql->prepare ( $sql );
>        $sth->execute ( $value1, $value2, $value3, $value4, $value5 );
>        $sth->finish();
> }
> if ($@) {
>        $sql = qq {
>                UPDATE table
>                   SET field1      = ?,
>                       field2           = ?,
>                       field3               = ?
>                 WHERE field4             = ?
>                       AND field5 = ?
>        };
>        $sth = $mysql->prepare ( $sql );
>        $sth->execute ( $value1, $value2, $value3, $value4, $value5 );
>        $sth->finish();
> };


1. The "$sth->finish()" is not useful there. 


2. With "eval{}" it is more reliable to use this format:

  eval {
      ...
      1;
  }
  or do {
      $@ ||= "unknown error";
      ...
  };


3. MySQL has "INSERT ... ON DUPLICATE KEY UPDATE", see 
http://dev.mysql.com/doc/refman/5.0/en/insert.html 

-- 
Affijn, Ruud

"Gewoon is een tijger."

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to