Skal den dø
Tværtimod bør det ikke or die()
nogensinde.
PHP er et sprog med dårlig arv. Meget dårlig arv. Og or die()
med en fejlmeddelelse som et af de værste grundprincipper:
- die smider en fejlmeddelelse ud, der afslører nogle interne systemdele til en potentiel angriber
- det forvirrer uskyldige brugere med mærkelige beskeder og efterlader dem ingen grænseflade at arbejde med, så de ville sandsynligvis bare droppe ud.
- det dræber scriptet i midten, så det kan forårsage revet design (eller slet intet design) vist (dvs. en ufuldstændig gengivelse af den side, brugeren anmodede om)
- at dræbe scriptet uopretteligt. Mens smidt undtagelse kan fanges og håndteres yndefuldt
die()
giver dig ingen antydning om stedet, hvor fejlen opstod . Og i en forholdsvis stor applikation vil det være ret besværligt at finde.
Så brug aldrig die()
med MySQL-fejl, selv for den midlertidige fejlretning :der er bedre måder.
I stedet for manuelt at tjekke for fejlen, skal du bare konfigurere mysqli til at kaste undtagelser ved fejl ved at tilføje følgende linje til din forbindelseskode
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
og derefter skal du bare skrive hver mysqli-kommando som den er, uden nogen or die
eller noget andet:
$result = mysqli_query($link, $sql);
Denne kode vil give en undtagelse i tilfælde af fejl, og du vil derfor altid blive informeret om ethvert problem uden en enkelt linje ekstra kode.
En mere detaljeret forklaring på, hvordan du gør din fejlrapporteringsproduktion klar, ensartet og overordnet fornuftig og samtidig gør din kode meget renere, kan du finde i min artikel om PHP-fejlrapportering .