Deve morire?
Al contrario, non dovrebbe or die()
mai.
PHP è un linguaggio di cattiva eredità. Eredità pessima. E or die()
con un messaggio di errore che è uno dei peggiori rudimenti:
- die lancia un messaggio di errore, rivelando alcuni elementi interni del sistema a un potenziale aggressore
- confonde utenti innocenti con strani messaggi e non lascia loro alcuna interfaccia con cui lavorare, quindi è probabile che abbandonino.
- uccide lo script nel mezzo, quindi potrebbe causare la visualizzazione di un design strappato (o del tutto assente) (ovvero un rendering incompleto della pagina richiesta dall'utente)
- uccidere lo script in modo irrecuperabile. Mentre l'eccezione generata può essere catturata e gestita con garbo
die()
non fornisce alcun indizio sul luogo in cui si è verificato l'errore . E in un'applicazione relativamente grande sarà piuttosto difficile da trovare.
Quindi, non usare mai die()
con errori MySQL, anche per il debug temporaneo :ci sono modi migliori.
Invece di controllare manualmente l'errore, configura semplicemente mysqli per generare eccezioni in caso di errore, aggiungendo la seguente riga al tuo codice di connessione
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
e dopo scrivi ogni comando mysqli così com'è, senza alcun or die
o qualsiasi altra cosa:
$result = mysqli_query($link, $sql);
Questo codice genererà un'eccezione in caso di errore e quindi sarai sempre informato di ogni problema senza una singola riga di codice aggiuntivo.
Una spiegazione più dettagliata su come rendere la produzione della segnalazione degli errori pronta, uniforme e nel complesso ragionevole, rendendo il codice molto più pulito, è possibile trovarla nel mio articolo su Segnalazione degli errori PHP .