简体   繁体   中英

Form input correction & database query- Codeigniter

Hey guys. I'm re-creating a registration for my website using codeigniter. On my previous page I did it in simple php and HTML. Now that I'm trying to recreate it in codeigniter I seem to be running into difficulties.

The following code is a function that is called to validate an email address that the user puts in. It is supposed to query the database and check if the email already exists. If it does, print an error message, if not, everything is hunky dorey.

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;
        }
    }

However I keep on getting mysql errors. Along the lines of

Error Number: 1064

You have an error in your SQL syntax;

or

alternatively when i use

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;
        }
    }
}

gives the error

mysql_num_rows(): supplied argument is not a valid MySQL result resource

Any help would be appreciated. Including a facepalm and correction in my code. I'm convinced it's something stupid that I just can't see.

Thanks

The function you're looking for is count_all_results, and you are only supposed to put the table name as your parameter for count_all_results.

$this->db->where('email', $str);
$num = $this->db->count_all_results('mytable');

See CodeIgniter's Active Record page for more info

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM