Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

mysqli hay chết, nó có phải chết không?

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn dữ liệu giữa một phạm vi ngày / giờ

  2. Ví dụ về SEC_TO_TIME () - MySQL

  3. Xác định Xếp hạng dựa trên Nhiều Cột trong MySQL

  4. MySQL so với MariaDB:những điều bạn cần biết

  5. Hàm GROUP_CONCAT () trong MySQL