【发布时间】:2021-07-10 03:59:15
【问题描述】:
检查重复的“用户名”字段
案例:
如果用户想要更新用户名字段以外的记录(如名字或其他),我使用简单的选择查询来检查重复的喜欢
"SELECT * from user where username = $username"
并检查计数,因为用户名已经存在(在同一记录中),它将返回计数 1
案例:
如果用户更改用户名(它现在是唯一的)并使用相同的查询检查是否重复,而不是返回 0 并且它工作正常
所以如果用户不更改用户名而不是上面的查询会中断
所以我将查询更改为:
"SELECT *
FROM user
WHERE `username` = $username
AND user_ID != $uid" (here user_ID is primary key)
所以它不会检查当前记录,是否正确?
编辑:
我的项目是基于 mvc 的,modal 有全局功能,比如
insert($tablename,$condition)
update($tablename,$condition)
等等
和更新功能就像
创建 sql 查询(基于 $condition 动态)
使用 $result = $query->execute(); 执行查询
和
if ($result) {
$msg = 'true';
} else {
$msg = 'false';
}
$data = array(
'result' => $msg,
'query' => $sql,
'eventType' => 'Update'
);
return $data;
那么我怎样才能捕获重复条目异常(我的意思是它发生在哪个列上(当存在多个唯一键时))
【问题讨论】:
-
你的引号个数不均匀
-
而 '==' 在 MySQL 中不是一个东西
-
没关系,我只想了解逻辑