Hàm mysql_affected_rows() của PHP
Định nghĩa và cách sử dụng
Hàm mysql_affected_rows() của PHP trả về số lượng bản ghi bị ảnh hưởng bởi hoạt động MySQL gần đây nhất.
Ngữ pháp
mysql_affected_rows(link_identifier)
Tham số | Mô tả |
---|---|
link_identifier | Bắt buộc. Định danh kết nối MySQL. Nếu không được chỉ định, mặc định sử dụng kết nối cuối cùng được mysql_connect() Kết nối mở. Nếu không tìm thấy kết nối, hàm sẽ thử gọi mysql_connect() Tạo kết nối và sử dụng nó. Nếu xảy ra sự cố, không tìm thấy kết nối hoặc không thể tạo kết nối, hệ thống sẽ phát ra thông báo cảnh báo cấp E_WARNING. |
Mô tả
Lấy lần cuối cùng với link_identifier Số lượng bản ghi bị ảnh hưởng bởi các truy vấn INSERT, UPDATE hoặc DELETE liên quan.
Trả về giá trị
Nếu thực hiện thành công, sẽ trả về số bản ghi bị ảnh hưởng, nếu truy vấn gần đây nhất thất bại, hàm sẽ trả về -1.
Nếu hoạt động gần đây nhất là truy vấn DELETE không có điều kiện (WHERE), tất cả các bản ghi trong bảng sẽ bị xóa, nhưng giá trị trả về của hàm này trong phiên bản 4.1.2 trước đều là 0.
Khi sử dụng truy vấn UPDATE, MySQL sẽ không cập nhật cột có giá trị mới và cũ alike. Điều này làm cho giá trị trả về của hàm mysql_affected_rows() không nhất thiết phải là số bản ghi thỏa mãn điều kiện truy vấn, chỉ số bản ghi thực sự được修改 mới được trả về.
Câu lệnh REPLACE trước tiên xóa các bản ghi có cùng khóa chính, sau đó chèn một bản ghi mới. Hàm này trả về số bản ghi đã xóa cộng với số bản ghi đã chèn.
Mẫu
<?php $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die("Không thể kết nối: " . mysql_error()); } mysql_select_db("mydb"); mysql_query("DELETE FROM mytable WHERE id < 5"); $rc = mysql_affected_rows(); echo "Các bản ghi đã xóa: " . $rc; mysql_close($con); ?>
Kết quả xuất ra:
Các bản ghi đã xóa: 4