PDA

Visualizza la versione completa : Comandi dopo "or die"


andre82
15-11-2004, 19:47
nella funzione prepare, utilizzata per effettuare una interrogazione sql possibile gestire le eccezioni con il comando or die, come possibile vedere:

$stat = $database->prepare("SELECT * FROM tabella where condizione") || die "Can't prepare statement: $DBI::errstr";
$return = $stat->execute ;

E' possibile al posto di visualizzare un messaggio a video in caso di errore del prepare effettuare delle operazioni, ad esempio inviare una mail di segnalazione dell'errore? Se si come procedo? Inserisco i comandi dopo l'or die?

shishii
15-11-2004, 20:24
no... se inserisci die viene stampato un messaggio sullo STDERR e il programma esce.

per ottenere quello che vuoi devi scrivere qualcosa del genere:

$stat = $database->prepare("SELECT * FROM tabella where condizione") || &errore('metti quello che vuoi', $DBI::errstr);


sub errore {
my $label = shift;
my $err = shift;

# qui di seguito inserisci le operazioni che vuoi fare
....
exit;
}

un ultima cosa... ancora pi importante controllare il successo o meno di execute().

andre82
16-11-2004, 11:05
Ok, grazie.

provero' a fare come dici, per il comando execute l'avevo previsto ma ho considerato che il procedimento fosse uguale.

Una cosa vorrei capire meglio:
il messaggio tra parentesi dopo la chiamata della funzione viene visualizzato all'utente?
le due variabili all'inizio della funzione cosa contengono?

Grazie ancora

shishii
16-11-2004, 20:02
quello che ti ho fatto un esempio. La stringa e la $DBI::errstr sono due parametri che passi alla funzione e che raccogli tramite

my $label = shift; # stringa
my $err = shift; # $DBI::errstr

poi come li usi lo decidi tu.

andre82
16-11-2004, 21:40
Ok, grazie adesso provo ad implementarla

Loading