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

mysqli_connect Lỗi nghiêm trọng:request ()

Hai vấn đề LỚN NHẤT với mã của bạn và "giải pháp" của bạn:

  1. Bạn có @ nhà điều hành khắp nơi. Bạn có -1 phiếu bầu cho câu hỏi của mình. @ toán tử chính cái ác. Bộ phận CNTT chịu trách nhiệm về trang trống mà bạn nhìn thấy.
  2. Tuy nhiên, biện pháp khắc phục bạn chọn đã khiến mọi thứ trở nên tồi tệ hơn. Điều "HOẶC chết" này không phải là một câu thần chú ma thuật để giải quyết bất kỳ vấn đề báo cáo lỗi nào. Và sử dụng không đúng cách sẽ gây ra lỗi như một trong những bạn có. Mà bạn có 1 trong thông báo lỗi.

Trước hết, việc bao gồm của bạn đã ổn, vì vậy, hãy để nó yên.

Khi gặp lỗi từ mysqli, hãy làm theo các hướng dẫn sau:

Thay vì thêm "hoặc chết" một cách ngẫu nhiên, bạn cần giải pháp báo cáo lỗi mạnh mẽ và hữu ích hơn.

Nếu bạn đang sử dụng mysqli_query () trên toàn bộ mã ứng dụng mà không đóng gói nó vào một số lớp trợ giúp, trigger_error() là một cách tốt để nêu ra lỗi PHP, vì nó cũng sẽ cho bạn biết tệp và số dòng nơi xảy ra lỗi

$res = mysqli_query($mysqli,$query) or trigger_error(mysqli_error($mysqli)."[$query]");

trong tất cả các tập lệnh
của bạn và kể từ đó bạn sẽ được thông báo về lý do, tại sao đối tượng không được tạo. (Nếu bạn tò mò về or này cú pháp, Tôi đã giải thích ở đây - nó cũng giải thích tại sao bạn có (1) trong thông báo lỗi)

Tuy nhiên , nếu bạn đang đóng gói truy vấn của mình vào một số lớp, tệp và dòng từ lỗi kích hoạt sẽ khá vô dụng vì chúng sẽ trỏ đến chính cuộc gọi chứ không phải mã ứng dụng gây ra sự cố nhất định. Vì vậy, khi chạy các lệnh mysqli được đóng gói, phải sử dụng một cách khác:

$result = $mysqli->query($sql);
if (!$result) {
    throw new Exception($mysqli->error." [$query]");
}

vì Ngoại lệ sẽ cung cấp cho bạn dấu vết ngăn xếp , điều này sẽ dẫn bạn đến nơi mà từ đó một truy vấn sai đã được gọi.

Lưu ý rằng bạn phải có khả năng xem các lỗi PHP nói chung. Trên một trang web trực tiếp, bạn phải xem nhật ký lỗi, do đó, cài đặt phải được

error_reporting(E_ALL);
ini_set('display_errors',0);
ini_set('log_errors',1);

trong khi trên một máy chủ phát triển cục bộ, bạn có quyền để xảy ra lỗi trên màn hình:

error_reporting(E_ALL);
ini_set('display_errors',1);

và tất nhiên bạn không bao giờ được sử dụng toán tử triệt tiêu lỗi (@) trước các câu lệnh của mình.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tăng tốc độ chèn trong MySQL

  2. jQuery AJAX lấy dữ liệu MySQL trả về toàn bộ index.html

  3. Chọn một khách hàng cụ thể trong MYSQL?

  4. Mã lỗi:1215. Không thể thêm ràng buộc khóa ngoại (khóa ngoại)

  5. di chuyển từ postgres sang mysql gây ra lỗi lạ Mysql2 ::Lỗi:Máy chủ MySQL đã biến mất