Как предотвратить дублирование записей электронной почты в моем коде для PHP? - PullRequest
0 голосов
/ 06 апреля 2020
$q = "INSERT INTO users (first_name, last_name, email, pass, registration_date) VALUES ('$fn', '$ln', '$e', SHA1('$p'), NOW() )";       
        $r = @mysqli_query ($dbc, $q); // Run the query.
        if ($r) { // If it ran OK.

            // Print a message:
            echo '<h1>Thank you!</h1>
        <p>You are now registered. In Chapter 12 you will actually be able to log in!</p><p><br /></p>';    

        } else { // If it did not run OK.

            // Public message:
            echo '<h1>System Error</h1>
            <p class="error">You could not be registered due to a system error. We apologize for any inconvenience.</p>'; 

            // Debugging message:
            echo '<p>' . mysqli_error($dbc) . '<br /><br />Query: ' . $q . '</p>';

        } // End of if ($r) IF.

        mysqli_close($dbc);

Я пытаюсь использовать mysqli_query и mysqli_num_rows (), но мне не везет.

Я не могу использовать UNIQUE, потому что он не делает то, что мне нужно, я нужно использовать mysqli_num_rows ()

1 Ответ

0 голосов
/ 06 апреля 2020

// Функция для проверки, если запись уже существует

<?php
        function recordExists($table, $where, $dbc) {
            $query = "SELECT * FROM `$table` WHERE $where";
            $result = $conn->query($query);

            if($result->num_rows > 0) {
                return true;    // The record(s) do exist
            }
            return false;       // No record found
        }
    ?>

// Пример использования ниже

<?php
        $exists = recordExists("users", "email= '$e'", $dbc);
        if ($exists == '1') {
            // This Email Already Exist
            // Print Error Message
        }
        else{
            // Email Does Not Exist
            // Insert Record into the Database
        }

    ?>
...