Mysql
 sql >> база данни >  >> RDS >> Mysql

mysqli или умре, трябва ли да умре?

Трябва ли да умре

Точно обратното, не трябва да or die() някога.
PHP е език с лоша наследственост. Много лоша наследственост. И or die() със съобщение за грешка, което е един от най-лошите рудименти:

  • die извежда съобщение за грешка, разкривайки някои вътрешни елементи на системата на потенциален нападател
  • то обърква невинните потребители със странни съобщения и не им оставя интерфейс, с който да работят, така че вероятно просто ще отпаднат.
  • убива скрипта в средата, така че може да доведе до показване на разкъсан дизайн (или никакъв дизайн) (т.е. непълно изобразяване на страницата, която потребителят е поискал)
  • убиване на скрипта безвъзвратно. Докато изхвърленото изключение може да бъде уловено и изящно обработено
  • die() не ви дава намек за мястото, където е възникнала грешката . А в сравнително голямо приложение ще бъде доста трудно да го намерите.

Така че, никога не използвайте die() с MySQL грешки,дори за временно отстраняване на грешки :има по-добри начини.

Вместо ръчно да проверявате за грешката, просто конфигурирайте mysqli да хвърля изключения при грешка, като добавите следния ред към вашия код за връзка

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

и след това просто напишете всяка команда на mysqli такава, каквато е, без никакъв or die или нещо друго:

$result = mysqli_query($link, $sql);

Този код ще предизвика изключение в случай на грешка и по този начин винаги ще бъдете информирани за всеки проблем без нито един ред допълнителен код.

По-подробно обяснение за това как да направите своята продукция за отчитане на грешки готова, еднаква и като цяло разумна, като същевременно направите кода си много по-чист, можете да намерите в моята статия на Докладване за PHP грешки .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конфигурирате Tomcat да се свързва с MySQL

  2. където 1=1 изявление

  3. Фатална грешка:Неуловена грешка:Извикване на недефинирана функция mysql_connect()

  4. MySQL изтрива дублиращи се записи, но запазва най-новите

  5. Как да премахнете стойността по подразбиране на колоната в MySQL