我正在使用 codeigniter 的一个站点。我不是使用框架的专家。在这里我必须检查数据库中是否已经存在电子邮件。我已经编写了所需的功能,但是在提交表单时出现错误。在控制器中,我制定了以下规则。
我的代码是:
$this->form_validation->set_rules(
'email', 'Email', 'trim|required|valid_email|is_unique|callback_isEmailExist'
);
public function isEmailExist($email) {
$this->load->library('form_validation');
$this->load->model('user');
$is_exist = $this->user->isEmailExist($email);
if ($is_exist) {
$this->form_validation->set_message(
'isEmailExist', 'Email address is already exist.'
);
return false;
} else {
return true;
}
}
在模型用户中,功能是:
function isEmailExist($email) {
$this->db->select('id');
$this->db->where('email', $email);
$query = $this->db->get('users');
if ($query->num_rows() > 0) {
return true;
} else {
return false;
}
}
当我提交表单时,我收到以下错误。
遇到 PHP 错误
严重性:通知
消息:未定义的偏移量:1
文件名:库/Form_validation.php
行号:953
发生数据库错误
错误号:1064
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'WHERE ` = 'muraddnw@gmail.com' LIMIT 1' 附近使用正确的语法
选择 * WHERE ` = 'muraddnw@gmail.com' 限制 1
文件名:C:\xampp\htdocs\aunction\system\database\DB_driver.php
行号:330 请任何人帮助我。提前致谢。