我有这个密码
我正在尝试更新用户并首先检查它是否已经存在。我的问题是它也检查自己作为存在的用户。
如何防止在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条答案
按热度按时间tzdcorbm1#
就像你想象的那样容易。我不会给你确切的代码,但我会给你逻辑。您不必逐个检查数据条目。我知道你已经知道了。
获取用户名
运行将查找用户名的查询。
检查查询是否返回超过1行。
它返回了不止一行?
如果是,则用户名存在。更新它。
否则,它就不存在了。无需更新。
祝你好运!