代码之家  ›  专栏  ›  技术社区  ›  developer91

如何避免重复的电子邮件php/sql?

  •  1
  • developer91  · 技术社区  · 7 年前

    <?php
    include("includedb.php");
    //declare variables
    $name        = $_POST['name'];
    $email       = $_POST['email'];
    $tel         = $_POST['tel'];
    $gift        = $_POST['gift'];
    $formName    = $_POST['formName'];
    $formEmail   = $_POST['formEmail'];
    $formEmirate = $_POST['formEmirate'];
    $birthday    = $_POST['birthday'];
    $date        = $_POST['date'];
    
    $result = mysqli_query("SELECT * FROM  users WHERE email = '$email'") or exit(mysqli_error()); //check for duplicates
    
    $num_rows = mysqli_num_rows($result); //number of rows where duplicates exist
    
    if ($num_rows == 0) { //if there are no duplicates...insert
        $sql = "INSERT INTO users (name, email, tel, gift, formName, formEmail, formEmirate, birthday, date)
    VALUES ('$name', '$email', '$tel','$gift', '$formName', '$formEmail', '$formEmirate','$birthday',CURRENT_TIMESTAMP )";
        if (!mysqli_query($sql)) {
            die('Error: ' . mysqli_error());
        }
    }
    
    mysqli_close();
    
    header("location: thank-you.html?remarks=success");
    
    ?>
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   B. Desai    7 年前

    问题是您没有传递任何到mysql_查询的连接

    因此,查询没有被查询

    $conn = your connection;
    
    $result = mysqli_query($conn,"SELECT * FROM  users WHERE email = '$email'") or exit(mysqli_error()); //check for duplicates
    $num_rows = mysqli_num_rows($result); //number of rows where duplicates exist
    if($num_rows == 0) { //if there are no duplicates...insert
    $sql = "INSERT INTO users (name, email, tel, gift, formName, formEmail, formEmirate, birthday, date)
    VALUES ('$name', '$email', '$tel','$gift', '$formName', '$formEmail', '$formEmirate','$birthday',CURRENT_TIMESTAMP )";
    if (!mysqli_query($conn,$sql))
      {
      die('Error: ' . mysqli_error());
      }
    }
    
        2
  •  0
  •   developer91    7 年前

    if(isset($_POST['submit'])){
    $name= $_POST['name'];
    $email= $_POST['email'];
    
    
    $result = mysqli_query($conn,"SELECT * FROM  test WHERE email = '$email'") or exit(mysqli_error()); //check for duplicates
    $num_rows = mysqli_num_rows($result); //number of rows where duplicates exist
    
     if(($num_rows) > 0){
         echo "A record already exists."; 
         exit;
        }
    
    else{
    $sql = "INSERT INTO test (name, email)
    VALUES ('$name', '$email')";
    if (!mysqli_query($conn,$sql))
      {
      die('Error: ' . mysqli_error());
      }
    }
    
    if($result) {
    
              header("Location: game.html");
    
    }else{ echo "Not Successful"; }
    
    mysqli_close();
    }
    ?>
    
    <!DOCTYPE html>
    <head>
    
    </head>
    <body>
    
    <h2>Enter your Name and Email</h2>
    <form method="post">
        <p><strong>First Name:</strong><br /> <input type="text" name="name" /></p>
        <p><strong>email:</strong><br /> <input type="email" name="email"/></p>
    
        <input type="submit" name="submit" value="Add Customer" />
    </form>
    
    
    
    </body>
    </html>