sql >> Database teknologi >  >> RDS >> Mysql

mysqli eller dø, skal den dø?

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 .



  1. Hvad skal jeg undslippe, når jeg sender en forespørgsel?

  2. tomcat7 - jdbc datasource - Dette vil med stor sandsynlighed skabe en hukommelseslækage

  3. Sådan fungerer LPAD()-funktionen i MySQL

  4. Postgresql:Sådan finder du filen pg_hba.conf ved hjælp af Mac OS X