Как обновить и проверить данные, если существует в PDO

0

У меня есть этот код

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

Как предотвратить проверку себя как существующих данных перед обновлением в PDO?

try
{
    $stmt = $crud->runQuery("SELECT user_name, user_email FROM tbl_login WHERE user_name=:user_name OR user_email=:user_email");
    $stmt->execute(array(':user_name'=>$user_name, ':user_email'=>$user_email));
    $row=$stmt->fetch(PDO::FETCH_ASSOC);

    if($row['user_name']==$user_name)
    {
        $msg = "<div class='alert alert-danger'>
            <strong>Error!</strong> Username is already taken!
            </div>";
    }
    else if($row['user_email']==$user_email)
    {
        $msg = "<div class='alert alert-danger'>
                <strong>Error!</strong> Email is already taken!
                </div>";
    }
    else
    {
        if($crud->update($edit_id,$user_name,$user_email))
        {
            $msg = "<div class='alert alert-info'>
                <strong>Great!</strong> Record was updated successfully <a href='index.php'>Dashboard</a>!
                </div>";
        }
        else
        {
            $msg = "<div class='alert alert-warning'>
                <strong>SORRY!</strong> ERROR while updating record !
                </div>";
        }
    }
}
catch(PDOException $e)
{
    echo $e->getMessage();
}
  • 0
    Исключить идентификатор текущего пользователя, который редактирует значение SELECT user_name, user_email FROM tbl_login WHERE user_id != :user_id AND (user_name=:user_name OR user_email=:user_email)
  • 0
    Спасибо вам за помощь
Теги:
pdo

1 ответ

1

Это легко, как вы себе представляете. Я не дам вам точный код, но я дам вам логику. Вам не нужно проверять ввод данных 1 на 1. Я знаю, что вы уже это знали.

  1. Получить имя пользователя
  2. Запустите запрос, который найдет имя пользователя.
  3. Проверьте, возвратил ли запрос более 1 строки.
  4. Он вернул более 1 строки?
  5. Если да, то имя пользователя существует. Обновите его.
  6. Иначе этого не существует. Ничего не обновлять.

Удачи!

  • 0
    Почему понизить? Должен ли я предоставить фрагмент кода?
  • 0
    Отличная идея. Мне не нужно использовать длинный длинный длинный код
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню