- Đầu tiên .. như @RamRaider đã nhận xét, bạn phải thêm một chỉ mục duy nhất vào
email
cột - Thứ hai .. bạn phải ngừng sử dụng
mysql_*
vì chúng không được dùng nữa. Bạn có thể sử dụngmysqli_*
các hàm,MySQLi
lớp hoặcPDO
. Ngoài ra, bằng cách sử dụng các câu lệnh đã chuẩn bị, bạn tránh được SQL Injjection -
Ngay cả khi bạn đặt một chỉ mục duy nhất, bạn phải luôn xác minh trước khi chèn nó:
<?php // PDO instantiation here $stmt = $pdo->prepare('SELECT COUNT(email) AS EmailCount FROM emails WHERE email = :email'); $stmt->execute(array('email' => $_POST['email'])); $result = $stmt->fetch(PDO::FETCH_ASSOC); if ($result['EmailCount'] == 0) { $stmt = $pdo->prepare('INSERT INTO emails (email) VALUES (:email)'); $stmt->execute(array('email' => $_POST['email'])); echo 'Thank you for Submitting. Redirecting back to Home Page'; } else { echo 'E-mail exists!'; }