Трябва ли да умре
Точно обратното, не трябва да 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 грешки .