Insert Ignore - спросить MySQL, если оператор был проигнорирован - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть следующий код, который является частью функции для добавления пользователя в базу данных на PHP.Он добавляет пользователя в базу данных.

if($user != '' && $pass != ''){
            $new_name_q = "INSERT IGNORE INTO $db_name (`User`, `Password` ,`Name`, `Medals`, `TextSize`)
                                         VALUES ('$user','$pass','$nameComplete', '000000', '18')";
            $new_name_rs = mysqli_query($connection1,$new_name_q);

            if(!$new_name_rs)
            {
                die("No name added: " . mysql_error());
            }
        }

Запрос работает нормально, и я не получаю дубликатов.Но я хотел бы повторить предупреждение для пользователя в случае, если запрос игнорируется.

1 Ответ

0 голосов
/ 11 сентября 2018

Вот код, который вам нужен:

if($user != '' && $pass != ''){
    $new_name_q = "INSERT IGNORE INTO $db_name (`User`, `Password` ,`Name`, `Medals`, `TextSize`)
        VALUES ('$user','$pass','$nameComplete', '000000', '18')";
    $new_name_rs = mysqli_query($connection1,$new_name_q);
    $affected = mysqli_affected_rows($connection1);
    if(!$affected) {
        die("No name added");
    }
}

См. http://www.php.net/manual/en/mysqli.affected-rows.php

[Я предполагаю, что вы сделали что-то вроде проверки того, что переменные уже правильно экранированы]

...