以下代码是一个函数,用于验证用户输入的电子邮件地址。它应该查询数据库并检查电子邮件是否已存在。如果是的话,打印一条错误信息,如果不是,那么一切都很糟糕。
function email_check($str)
{
$num = $this->db->count_all("SELECT email FROM mytable WHERE email='$str'");
if ($num > 0)
{
$this->validation->set_message('username_check', 'Email already in use');
return FALSE;
}
else
{
return TRUE;
}
}
但是我继续得到mysql错误。
错误号码:1064
您的SQL语法有错误;
或
或者当我使用
时function email_check($str)
{
$database_email_check = ("SELECT email FROM myTable WHERE email='$str'");
$email_check = $this->db->query($database_email_check);
$num = mysql_num_rows($email_check);
if ($num > 0)
{
$this->validation->set_message('username_check', 'Email already in use');
return FALSE;
}
else
{
return TRUE;
}
}
}
给出错误
mysql_num_rows():提供的参数是 不是有效的MySQL结果资源
任何帮助将不胜感激。在我的代码中包括facepalm和更正。 我确信这是我看不见的傻事。
由于
答案 0 :(得分:2)
您正在寻找的函数是count_all_results,您只应将表名作为count_all_results的参数。
$this->db->where('email', $str);
$num = $this->db->count_all_results('mytable');
有关详细信息,请参阅CodeIgniter's Active Record page