sql >> Database >  >> RDS >> Mysql

Controleer of e-mail uniek is php

  • Eerst.. zoals @RamRaider al opmerkte, moet je een unieke index toevoegen aan de email kolom
  • Ten tweede.. je moet stoppen met het gebruik van mysql_* functies omdat ze verouderd zijn. Je mag mysqli_* . gebruiken functies, MySQLi klasse of PDO . Door voorbereide verklaringen te gebruiken, vermijdt u ook SQL-injecties
  • Zelfs als u een unieke index instelt, moet u altijd controleren voordat u deze invoegt:

    <?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. Vrije plaatsen vinden in een boekingssysteem

  2. Online tijd meten op website

  3. Verschil tussen taal sql en taal plpgsql in PostgreSQL-functies

  4. Hoe ongebruikte sequenties verwijderen?