Nó có phải chết không
Hoàn toàn ngược lại, nó không nên or die()
đã từng.
PHP là một ngôn ngữ có tính di truyền xấu. Di truyền rất xấu. Và or die()
với thông báo lỗi là một trong những lỗi thô sơ tồi tệ nhất:
- die đưa ra một thông báo lỗi, tiết lộ một số nội dung bên trong hệ thống cho kẻ tấn công tiềm năng
- nó gây nhầm lẫn cho những người dùng vô tội với các thông báo lạ và khiến họ không có giao diện nào để làm việc, vì vậy họ có thể sẽ bỏ học.
- nó giết chết tập lệnh ở giữa, vì vậy nó có thể gây ra thiết kế bị rách (hoặc không có thiết kế nào cả) được hiển thị (tức là kết xuất không đầy đủ của trang mà người dùng yêu cầu)
- giết chết tập lệnh không thể phục hồi. Trong khi ngoại lệ đã ném có thể được bắt và xử lý một cách duyên dáng
-
die()
không cung cấp cho bạn gợi ý về nơi xảy ra lỗi . Và trong một ứng dụng tương đối lớn, sẽ rất khó tìm.
Vì vậy, đừng bao giờ sử dụng die()
với lỗi MySQL, ngay cả đối với gỡ lỗi tạm thời :có nhiều cách tốt hơn.
Thay vì kiểm tra lỗi theo cách thủ công, chỉ cần định cấu hình mysqli để đưa ra các ngoại lệ đối với lỗi, bằng cách thêm dòng sau vào mã kết nối của bạn
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
và sau đó chỉ cần viết mọi lệnh mysqli như hiện tại, không có bất kỳ or die
nào hoặc bất cứ điều gì khác:
$result = mysqli_query($link, $sql);
Mã này sẽ đưa ra một ngoại lệ trong trường hợp có lỗi và do đó bạn sẽ luôn được thông báo về mọi vấn đề mà không cần một dòng mã bổ sung nào.
Giải thích chi tiết hơn về cách làm cho quá trình sản xuất báo cáo lỗi của bạn sẵn sàng, đồng nhất và hợp lý trong khi làm cho mã của bạn sạch hơn nhiều, bạn có thể tìm thấy trong bài viết của tôi về Báo cáo lỗi PHP .