表格输入校正&数据库查询 - Codeigniter

时间:2009-07-05 17:05:45

标签: php mysql codeigniter

嘿伙计们。我正在使用codeigniter为我的网站重新创建注册。在我的上一页,我用简单的PHP和HTML做到了。现在我正试图在codeigniter中重新创建它,我似乎遇到了困难。

以下代码是一个函数,用于验证用户输入的电子邮件地址。它应该查询数据库并检查电子邮件是否已存在。如果是的话,打印一条错误信息,如果不是,那么一切都很糟糕。

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和更正。 我确信这是我看不见的傻事。

由于

1 个答案:

答案 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