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

Tôi có thể phát hiện và xử lý Cảnh báo MySQL bằng PHP không?

Đối với các cảnh báo được "gắn cờ" đối với PHP nguyên bản sẽ yêu cầu các thay đổi đối với trình điều khiển mysql / mysqli, điều này rõ ràng nằm ngoài phạm vi của câu hỏi này. Thay vào đó, về cơ bản bạn sẽ phải kiểm tra mọi truy vấn bạn thực hiện trên cơ sở dữ liệu để biết các cảnh báo:

$warningCountResult = mysql_query("SELECT @@warning_count");
if ($warningCountResult) {
    $warningCount = mysql_fetch_row($warningCountResult );
    if ($warningCount[0] > 0) {
        //Have warnings
        $warningDetailResult = mysql_query("SHOW WARNINGS");
        if ($warningDetailResult ) {
            while ($warning = mysql_fetch_assoc($warningDetailResult) {
                //Process it
            }
        }
    }//Else no warnings
}

Rõ ràng là việc áp dụng en-mass sẽ rất tốn kém, vì vậy bạn có thể cần phải suy nghĩ cẩn thận về thời điểm và cách thức các cảnh báo có thể xuất hiện (điều này có thể khiến bạn phải tái cấu trúc để loại bỏ chúng).

Để tham khảo, hãy CẢNH BÁO HIỂN THỊ CỦA MySQL

Tất nhiên, bạn có thể phân phối với truy vấn ban đầu cho SELECT @@warning_count , điều này sẽ giúp bạn tiết kiệm một truy vấn cho mỗi lần thực thi, nhưng tôi đã đưa nó vào để hoàn thiện về mặt ngữ nghĩa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sử dụng Google Documents làm cơ sở dữ liệu?

  2. Làm cách nào để bạn thay đổi mức cách ly SQL từ Python bằng MySQLdb?

  3. nguyên nhân thực sự của lỗi mysql 1442 là gì?

  4. Cần truy vấn MySQL để chọn từ bảng lưu trữ các cặp giá trị khóa

  5. MySQL Workbench:Cách giữ kết nối tồn tại