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

Làm thế nào để biết nếu truy vấn MySQL UPDATE không thành công vì thông tin được cung cấp khớp với dữ liệu đã có trong cơ sở dữ liệu?

Một lý do khác khiến bạn nhận được 0 hàng bị ảnh hưởng là nếu UPDATE câu lệnh không khớp với hàng nào. Ví dụ:

UPDATE MyTable SET field = 'content' WHERE id = 1234;

Cung cấp 0 hàng bị ảnh hưởng nếu không có hàng nào tồn tại với id = 1234 . Đây cũng không phải là lỗi mà chỉ là UPDATE điều đó đã xảy ra không khớp với hàng nào.

Cách để phát hiện trường hợp này là sử dụng SELECT để xác minh rằng có một hàng như vậy. Nếu bạn có thể xác nhận hàng tồn tại, nhưng UPDATE cho biết nó ảnh hưởng đến 0 hàng, sau đó bạn biết rằng các giá trị bạn đã cố gắng thay đổi trên thực tế là các hàng đã có trong cơ sở dữ liệu.

SELECT COUNT(*) FROM MyTable WHERE id = 1234;

Nhưng sự phân biệt có thể không quan trọng. Bạn có thể báo lỗi nếu mysql_error() cho biết có một, như @BoltClock đề xuất. * Nếu không có lỗi, bạn chỉ có thể báo cáo "không có thay đổi" cho người dùng.



  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àm cách nào để nâng cấp Cơ sở dữ liệu osCommerce từ v2.2 lên v2.3

  2. Hợp nhất 2 bảng cho một truy vấn CHỌN?

  3. Cách thoát từ khóa giá trị trong mysql khi sử dụng câu lệnh Chọn

  4. CAST thành DECIMAL trong MySQL

  5. Cách kiểm tra xem một bảng đã tồn tại chưa trước khi tạo nó trong MySQL