Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Comandi dopo "or die"

  1. #1

    Comandi dopo "or die"

    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?

  2. #2
    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().
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    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

  4. #4
    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.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Ok, grazie adesso provo ad implementarla

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.