|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
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();
}
}
}
}
}
Le chiusure dei statement e della connessione, ad esempio, vorrei metterle un'unica volta in un finally. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:41.



















