У меня есть этот код
и я пытаюсь обновить пользователя и сначала проверить его, если он уже существует. и моя проблема в том, что он также проверяет себя как существующего пользователя.
Как предотвратить проверку себя как существующих данных перед обновлением в 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();
}
Это легко, как вы себе представляете. Я не дам вам точный код, но я дам вам логику. Вам не нужно проверять ввод данных 1 на 1. Я знаю, что вы уже это знали.
Удачи!
SELECT user_name, user_email FROM tbl_login WHERE user_id != :user_id AND (user_name=:user_name OR user_email=:user_email)