Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sprawdź e-mail, aby był unikalnym php

  • Po pierwsze... ponieważ @RamRaider już skomentował, musisz dodać unikalny indeks do email kolumna
  • Po drugie... musisz przestać używać mysql_* funkcje, ponieważ są przestarzałe. Możesz użyć mysqli_* funkcje, MySQLi class lub PDO . Ponadto, korzystając z przygotowanych instrukcji, unikasz wstrzyknięć SQL
  • Nawet jeśli ustawisz unikalny indeks, zawsze powinieneś zweryfikować go przed wstawieniem:

    <?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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd krytyczny PHP:wywołanie niezdefiniowanej funkcji mysqli_stmt_get_result()

  2. Czy istnieje różnica w używaniu INT(1) vs TINYINT(1) w MySQL?

  3. Procedury składowane w Ruby on Rails

  4. Jak mogę wybrać sąsiedni wiersz w sql, gdy zamówię go według innego pola?

  5. porównaj 2 ciągi w sql [pierwszy ciąg zawiera podciągi drugiego ciągu]