简体   繁体   中英

Check if the email exists using pdo

This is the section I use to add users.

<?php

    session_start();

    if( isset($_SESSION['user_id']) ){
        header("Location: ./index.php");
    }

    require 'conn.php';

    $message = '';

    if(!empty($_POST['name']) &&!empty($_POST['email']) && !empty($_POST['password'])):

        // Enter the new user in the database
        $sql = "INSERT INTO users (name, email, password) VALUES (:name,:email, :password)";
        $stmt = $conn->prepare($sql);

        $stmt->bindValue(':name', $_POST['name']);
        $stmt->bindValue(':email', $_POST['email']);
        $stmt->bindValue(':password', password_hash($_POST['password'], PASSWORD_BCRYPT));

        if( $stmt->execute() ):
            $message = 'Successfully created new user';
        else:
            $message = 'Sorry there must have been an issue creating your account';
        endif;

    endif;

    ?>

I personally do it by using a query and an if statement

$query = $conn->prepare("SELECT * FROM users WHERE email = :email");
$query->bindParam(':email', $_POST['email']);
if ($query->rowcount() = 0)
{
// insert account into database
}
else {
// display error message
}

To check if the email exists or not, you have to write a query whether that email is stored in the database. If the query result is not empty, you can show a message that the email exists. If the query result is empty, you can make him a new user.

For that you have to write this query

$sql="select name from user where email='$email'"; 
$stmt = $conn->prepare($sql);    

if ($stmt->rowcount() = 0)
{
 $sql = "INSERT INTO users (name, email, password) VALUES (:name,:email, :password)";
        $stmt = $conn->prepare($sql);

        $stmt->bindValue(':name', $_POST['name']);
        $stmt->bindValue(':email', $_POST['email']);
        $stmt->bindValue(':password', password_hash($_POST['password'], PASSWORD_BCRYPT));
}
else {
  $msg="Email already exists";
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM