3 回答

TA贡献1777条经验 获得超10个赞
首先,使用特定的用户名检查数据库中有多少行
模型
public function usercheck($userchecker) {
return $this->db->get_where('ci_useruid', ['ci_useruid' => $userchecker])->num_rows();
}
控制器
根据函数的结果usercheck做你想做的
$userchecker = $_POST['register-username'];
$this->load->model('User_exists');
$rows = $this->User_exists->usercheck($userchecker);
if ($rows > 0) {
echo '<p style="color: orange;">A user with this username already exists!</p>';
exit();
}else {
//Coding...
}

TA贡献1784条经验 获得超8个赞
你把事情搞混了
$query = $this->db->get('users');
$result = $query->result();
$usercheck = $result->num_rows();
您的$query变量包含整个结果对象。因此,它是$query谁持有->result(),->num_rows()等等。
通过$result与$query->result()您分配是分配您从数据库中获得的对象数组,而不是辅助方法(例如num_rows()仍然存在于 中$query)
也就是说,避免重复用户名的一种更简单的form_validation方法是以这种方式使用该方法:
$this->form_validation->set_rules('field_name', 'Field description', 'required|is_unique[tablename.fieldname]');
然后在控制器中运行表单验证,您将不需要自己处理唯一性
- 3 回答
- 0 关注
- 159 浏览
添加回答
举报