Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Dopo quasi un mese di utilizzo quotidiano e un viaggio medio-lungo in autostrada, raccontiamo pregi e limiti della Geely EX5: comfort premium, batteria LFP da 60,22 kWh, autonomia fino a 430 km e un prezzo che parte da 38.900 €
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-12-2010, 16:16   #1
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
[PHP] Ottimizzazione codice con try-catch-finally

Ciao ragazzi vi chiedo aiuto poichè vorrei ottimizzare il codice che vi posto con l'uso del try catch finally che secondo me compatta molto il codice oltre a renderlo piu efficiente. Ho provato un po ma non mi risulta semplice come in java (l'ide mi segnala errori). Per adesso vi posto il codice senza alcun try catch finally:

Codice:
public function login_query ($user, $pass)
    {
                //richiamo la funzione di connessione al db
                $mysqli=conn();
        
       
                $query="SELECT nome_utente FROM account WHERE nome_utente=? AND password=?";
                $stmt=mysqli_stmt_init($mysqli);
                if (mysqli_stmt_prepare($stmt, $query))
                {
                    mysqli_stmt_bind_param($stmt,'ss',$user,$pass);
                    mysqli_stmt_execute($stmt);
                    mysqli_stmt_bind_result($stmt,$result);
                    
                    if (mysqli_stmt_fetch($stmt)){
                        date_default_timezone_set('Europe/Rome');                        
                        echo "Bentornato ".' '.$result," oggi è il".' '.date('d/m/Y').' '."<br /><br />";
                        //chiusura dello statement
                        mysqli_stmt_close($stmt);
                        // chiusura della connessione
                        $mysqli->close();
                        menu_utente();
                        
                    }
                    else
                    {
                        //chiusura dello statement
                        mysqli_stmt_close($stmt);
                        
                        
                        $stmt2=mysqli_stmt_init($mysqli);
                        $query="SELECT nome_utente FROM administrator WHERE nome_utente=? AND password=?";
                        if (mysqli_stmt_prepare($stmt2, $query))
                        {
                            mysqli_stmt_bind_param($stmt2,'ss',$user,$pass);
                            mysqli_stmt_execute($stmt2);
                            mysqli_stmt_bind_result($stmt2,$result2);
                            
                            if (mysqli_stmt_fetch($stmt2))
                            {
                                date_default_timezone_set('Europe/Rome');                        
                                echo "Bentornato ".' '.$result2," oggi è il".' '.date('d/m/Y').' '."<br /><br />";
                                //chiusura dello statement
                                mysqli_stmt_close($stmt2);
                                // chiusura della connessione
                                $mysqli->close();
                                menu_admin();
                            
                            }
                            else
                                {
                                    echo "l'utente".' '.$user.' '." non esiste o la password è errata<br /><br />";
                                    echo '<a href="home.php">Torna alla home</a>';
                                    //chiusura dello statement
                                    mysqli_stmt_close($stmt2);
                                    // chiusura della connessione
                                    $mysqli->close();
                                }
                       
                        }
                    }                

               
            }   
    
       
    }
Il codice è semplice, una volta effettuata la connessione fa una query tramite un prepared statement. Se trova qualcosa nella tabella account va nella funzione menu_utente altrimenti fa la query nella tabella administrator. Se non trova niente anche li avvisa che l'utente non esiste.

Le chiusure dei statement e della connessione, ad esempio, vorrei metterle un'unica volta in un finally.
serpico84 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Nintendo Switch 2, arriva il VRR anche i...
Un errore delle API di Steam svela gli a...
Architettura 3D e materiali ferroelettri...
Mario Kart World riceve 10 circuiti grat...
Addio cobalto, le celle al manganese di ...
Ninja CRISPi a 99,90€: friggitrice ad ar...
Sony rinuncia a Physint, XBOX pubblicher...
Sono gli iPhone più convenienti ora: iPh...
Metroid Ravenous: svelata la data d'usci...
vivo X500 Pro Max mostra per la prima vo...
Un bug nella frenata rigenerativa spegne...
Area Science Park lancia HPC4SME: calcol...
I Muse perdono @muse su Instagram e X: l...
Publisher, l'addio è ufficiale: Microsof...
Fps che aumentano fino al 60% con CPU In...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v