sql >> Database teknologi >  >> RDS >> Mysql

Tjek e-mail for at være unik php

  • Først.. som @RamRaider allerede har kommenteret, skal du tilføje et unikt indeks til email kolonne
  • For det andet.. du skal stoppe med at bruge mysql_* funktioner, fordi de er forældede. Du kan bruge mysqli_* funktioner, MySQLi klasse eller PDO . Ved at bruge forberedte udsagn undgår du også SQL-injektioner
  • Selvom du angiver et unikt indeks, bør du altid bekræfte, før du indsætter 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. Virker dette for at stoppe sql-injektioner

  2. MySQL Tutorial:MySQL IN-sætning (avanceret)

  3. Når du kører UPDATE ... datetime =NU(); vil alle opdaterede rækker have samme dato/tid?

  4. Kort guide-ejendom til Oracle i Entity Framework Code først