Mysql
 sql >> Base de données >  >> RDS >> Mysql

Vérifier l'e-mail pour être php unique

  • Premièrement... comme @RamRaider l'a déjà commenté, vous devez ajouter un index unique à l'email colonne
  • Deuxièmement... vous devez arrêter d'utiliser mysql_* fonctions car elles sont obsolètes. Vous pouvez utiliser mysqli_* fonctions, MySQLi classe ou PDO . De plus, en utilisant des instructions préparées, vous évitez les Injections SQL
  • Même si vous définissez un index unique, vous devez toujours vérifier avant de l'insérer :

    <?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!';
    }