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')
?