sql >> Databasteknik >  >> RDS >> Mysql

Kontrollera e-post för att vara unik php

  • Först... som @RamRaider redan har kommenterat måste du lägga till ett unikt index till email kolumn
  • För det andra... du måste sluta använda mysql_* funktioner eftersom de är utfasade. Du kan använda mysqli_* funktioner, MySQLi klass eller PDO . Genom att använda förberedda uttalanden undviker du också SQL-injektioner
  • Även om du ställer in ett unikt index bör du alltid verifiera innan du infogar det:

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


  1. undvika att sortera efter MYSQL IN-nyckelordet

  2. Prestanda/effektivitet för 2 SELECT-satser vs UNION vs något annat i MySQL-PHP

  3. Databasunderställning – Hur man gör i IRI Voracity

  4. Oracle SQL hur man skriver en sql-sats som verifierar om användare i mitt nätverk (dvs vänner eller vänners vänner)