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

kiểm tra mục nhập trùng lặp so với sử dụng kết quả PDO errorInfo

Bạn có thể đang thực thi điều này bằng một khối try catch:

try {
   $prep->execute($values);
   // do other things if successfully inserted
} catch (PDOException $e) {
   if ($e->errorInfo[1] == 1062) {
      // duplicate entry, do something else
   } else {
      // an error other than duplicate entry occurred
   }
}

Bạn cũng có thể xem xét các lựa chọn thay thế như "CHÈN BỎ QUA" và "CHÈN ... TRÊN CẬP NHẬT KHÓA DUPLICATE" - mặc dù tôi nghĩ đó là những thứ dành riêng cho MySQL và sẽ đi ngược lại tính di động của việc sử dụng PDO, nếu đó là điều bạn lo ngại .

Chỉnh sửa:Để trả lời chính thức hơn câu hỏi của bạn, đối với tôi, giải pháp số 1 (lập trình phòng thủ) được sử dụng đầy đủ có hiệu quả loại bỏ điểm hạn chế duy nhất ngay từ đầu. Vì vậy, tôi sẽ đồng ý với suy nghĩ của bạn về việc để MySQL đảm nhận việc kiểm tra dữ liệu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi cú pháp do sử dụng từ dành riêng làm tên bảng hoặc cột trong MySQL

  2. Làm cách nào để thêm nhận xét trong MySQL?

  3. Cập nhật MySQL từ CSV bằng JAVA

  4. Nhóm tối đa của một cột nhất định

  5. Trợ giúp cập nhật phân trang PHP &MySQL