- 最初に..@RamRaiderがすでにコメントしているように、
email
に一意のインデックスを追加する必要があります 列 - 2番目..
mysql_*
の使用を停止する必要があります 非推奨であるため、機能します。mysqli_*
を使用できます 関数、MySQLi
クラスまたはPDO
。また、プリペアドステートメントを使用することで、SQLインジェクション を回避できます。 -
一意のインデックスを設定した場合でも、挿入する前に必ず確認する必要があります:
<?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!'; }