如何检查发布的值是否已存在于db中?

时间:2016-10-12 19:44:46

标签: php mysql codeigniter codeigniter-3

我想检查发布的用户名是否存在于带有电子邮件地址的数据库中。 怎么检查?

public function check_all($username) 
        {
            $check = $this->db->where("username","email", $username)->get("users");
            if($check->num_rows() > 0) {
                return false;
            } else {
                return true;
            }
        }

3 个答案:

答案 0 :(得分:1)

有3种方法。方法1,执行2个查询,第一个检查是否已经存在,第二个查询在第一个找到的零匹配时执行插入。

方法2,使用insert ignore语法,因此重复插入无提示失败。

方法3,使用ON DUPLICATE KEY UPDATE语法更新已插入的条目的列(如果该条目尚不存在)。

答案 1 :(得分:1)

如果您想检查用户名是否存在,可以尝试以下代码段

Robolectric

如果您正在查看用户是否有可以执行的电子邮件地址

public function check_all($username) 
        {
            $results = $this->db->select('USERNAME')
                               ->from('USERS')
                               ->where('USERNAME', $username)
                               ->get();

            if($results->num_rows() > 0)
            {
              //The user exist
              return true;
            } else {
                return false;
            }
        }

答案 2 :(得分:0)

只需进行验证即可轻松检查数据库中已存在的用户/电子邮件

[
'field' => 'username',
'label' => 'User Name',
'rules' =>'trim|required|is_unique[login.username],
                        'errors' =>array('is_unique' => 'The %s is already  taken')                                  

此处,is_unique[login.username]其中login是表名,username是directlt在数据库中查看并检查唯一值的列

了解更多内容转到CI