Bạn có thể thêm một ràng buộc DUY NHẤT vào bảng của mình. Đây là thao tác một lần - bạn không cần phải làm điều này mỗi khi tập lệnh của bạn chạy, nó là một thay đổi đối với cấu trúc bảng. Chạy điều này trong công cụ quản trị MySQL của bạn (ví dụ:phpMyAdmin, Navicat, HeidiSQL, what-have-you):
ALTER TABLE awards_2009_votes ADD UNIQUE (member_id);
Sau thay đổi này, sẽ không thể thêm phiếu bầu thứ hai có cùng ID thành viên - CHÈN (hoặc CẬP NHẬT) sẽ không thành công.
Ưu điểm ở đây là việc kiểm tra được thực hiện tự động trong cơ sở dữ liệu, vì vậy bạn không phải lo lắng về việc 1) kiểm tra các bản sao với mã của bạn hoặc 2) mọi người thêm nhiều phiếu bầu theo cách thủ công.
As @ middaparka
cho biết, bạn nên sử dụng INSERT IGNORE
để tránh lỗi "khóa trùng lặp":
$sql_query = mysql_query("INSERT IGNORE INTO awards_2009_votes (`member_id`, `region`, `coach`, `official`, `volunteer`, `young_volunteer`) VALUES ('$memberid', '$region', '$coach', '$official', '$volunteer', '$young_volunteer')") or die (mysql_error());
if (mysql_insert_id()) {
// row was inserted - vote added
} else {
// row was not inserted - already voted
}