@ell_ninjoalls

Как проверить запись на дубликат и добавить в mysql?

Не получается добавить запись в mysql.
Часть кода фаила с добавлением:
$sql = "SELECT `id` FROM `users` WHERE `email` = '$email'";
        $result = $mysqli->query($sql) or die (mysqli_error());   //в этои строке выдаёт ошибку: Fatal error: Call to a member function query() on a non-object in ...

        if(mysqli_num_rows($result)>0)
        {
            echo "<b><center><font size=4 color=red>Такои E-mail уже зарегистрирован!</center></font></b>";
        }
        else
        {
            $q="INSERT INTO users(email, password, data, ip) VALUES ('$email', '$mdPassword', '$data', '$ip')";
            $result=$mysqli->query($q) or die (mysqli_error());
            echo "<b><center><font size=4 color=green>Вы успешно зарегистрировались!</center></font></b>";
        }


Фаил с подключением БД:
<?php

$db_server='localhost';
$db_user='root';
$db_password='';
$db_name='tnpolar';

$mysqli = new mysqli($db_server, $db_user, $db_password, $db_name);
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$mysqli->set_charset('utf8');
?>
  • Вопрос задан
  • 356 просмотров
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Регистрация по email - глупость, адрес время от времени приходится менять.
А по вопросу - уникальный индекс по полю, тогда при попытке добавления дубликата выдаст ошибку.
Ответ написан
@SayrusCraft
Разработчик сайтов для мобильных устройств
Пробуйте удалить or die (mysqli_error()); и в конце query($q), query($sql) точку с запятой поставить ;
Ответ написан
@nozzy
Symfony, Laravel, SQL
.....
global $mysqli; 
$result = $mysqli->query($sql) or die (mysqli_error());
.....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы