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

PHP / MYSQL chỉ cho phép một phiếu bầu cho mỗi thành viên?

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
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tìm nạp dữ liệu từ cơ sở dữ liệu MySQL vào Excel

  2. Lỗi nhập unicode trùng lặp trên cột duy nhất - mysql

  3. Chọn giá trị phổ biến nhất từ ​​quan hệ - Câu lệnh SQL

  4. Làm thế nào để khôi phục các hàng vừa bị xóa trong mysql?

  5. mysql nhận chênh lệch thay vì SUM