Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查db中是否已存在过账值?_Php_Mysql_Codeigniter_Codeigniter 3 - Fatal编程技术网

Php 如何检查db中是否已存在过账值?

Php 如何检查db中是否已存在过账值?,php,mysql,codeigniter,codeigniter-3,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 fals

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

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种方法。方法1,执行2个查询,第一个查询检查它是否已经存在,第二个查询在第一个查询发现零匹配时执行插入

方法2,使用
insert-ignore
语法,这样重复的插入就会自动失败


方法3,使用重复密钥更新上的
语法来更新条目的列,如果该条目不存在,则会插入该条目。

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

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;
            }
        }
如果您希望检查用户是否有电子邮件地址,您可以这样做

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

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

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

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

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


有关更多信息,请转到您
选择。。。其中email=$email或username=$username
,基本上。由于您完全没有提供有关这
db->where
东西是什么,或者它是如何工作的详细信息,所以我们只能建议您这么做。很抱歉,我使用的是codeigniter@marcbt这当然是可能的,但没有太多意义。直接插入是一种更有效的策略。如果声明为唯一的组合索引已经包含该组合,则该操作将失败。这足以让您推断出一个已经使用的用户名。这为您节省了额外的select语句,从而节省了时间和代码。您好,我想知道,如何检查是否有人将电子邮件地址作为用户名发布,以及如何使其有效?如果用户通过相同的
$username
发布电子邮件或用户名,那么如何检查其有效性或存在性?能否提供
$username
的两个有效值示例?我假设您的意思是,当调用函数时,您可以将函数作为
全部检查('Mehur')
全部检查('Mehur')Mehur@place.com“)
如果用户存在,是否希望函数返回?如果您能在您的问题中提供更多细节,以便我们更好地回答,并提供示例。请检查
电子邮件的任何选项是否为非空
?我第行有
电子邮件
,所以我应该使用
->where('email')