Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Überprüfen Sie, ob die E-Mail eindeutig ist

  • Zuerst... wie @RamRaider bereits kommentierte, müssen Sie der email einen eindeutigen Index hinzufügen Spalte
  • Zweitens müssen Sie aufhören, mysql_* zu verwenden Funktionen, weil sie veraltet sind. Sie können mysqli_* verwenden Funktionen, MySQLi Klasse oder PDO . Außerdem vermeiden Sie durch die Verwendung vorbereiteter Anweisungen SQL-Injektionen
  • Auch wenn Sie einen eindeutigen Index festlegen, sollten Sie vor dem Einfügen immer Folgendes überprüfen:

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