php - Codeigniter 编辑(检查重复 + 如果未找到重复则允许更新)
问题描述
检查编辑功能上的重复项
目前我的数据库表
USERDB
userId userName userPassword userEmail userAddress userPhone
我想要的是
允许检查“用户名”重复”,如果“用户名”返回 true,则允许编辑其他文本字段。
遇到的问题:
当我没有更改“用户名”字段上的任何内容并且我编辑了用户电子邮件时,由于我的“用户名”与当前数据库数据重复,它将始终返回 FALSE。
$checkvalidation = $this->userdb->UsernameDuplicatechecking($userName);
if($checkvalidation == TRUE){
$this->userdb->updateUser($userName,$userEmail,$userAddress,$userPhone,$id);
}else{
$this->session->set_flashdata('errormessage', 'Duplicate');
redirect("User/EditUserAccount/$id");
}
更新型号代码
public function updateUser($userName,$userEmail,$userAddress,$userPhone,$id);
{
$UserArray = array(
'userName' => $userName,
'userEmail' => $userEmail,
'userAddress' => $userAddress,
'userPhone' => $userPhone,
);
$this->db->set($UserArray);
$this->db->where('userId',$id);
$this->db->update('USERDB');
}
解决方案
对于这个问题,您必须发送用户 ID,您可以在哪个函数中检查用户名的重复。
$this->userdb->UsernameDuplicatechecking($userName,$id);
将用户 ID 发送到函数UsernameDuplicatechecking之后。添加 where 条件 userID 不等于当前 ID。
$this->db->where("userId <> $id");
我希望这能解决你的问题。
推荐阅读
- javascript - 如何用另一帧更改一帧的背景颜色?
- r - mapply 陷入无限循环
- mongodb - $group 获取数组中的所有相关数据
- outlook - Office.js 加载项显示对话框动态大小
- jmeter - Jmeter 和 webhook
- jquery - 在页面加载时显示第一个 div 并在我单击另一个锚点时隐藏它
- python - 无法从 Spacy 安装 es_core_news_sm
- typescript - 动态访问嵌套对象中的值时推断正确的类型
- visual-studio-code - 如何用斜杠更改 VisualStudioCode 注释颜色?
- python - 在 Python 中绘制曲面