【发布时间】:2014-12-05 14:11:27
【问题描述】:
我是 CodeIgniter 新手,我开始探索 CI 功能,尤其是在本例中是 Form 构造。我已经阅读了有关此的文档并在网络上进行了搜索,但没有找到解决方案。
主要问题是,当我为一个字段指定它的值必须是唯一的时,如果我输入一个特定的值,那么一切正常,但如果我不这样做,我会发现“发生数据库错误” " 1062 错误(键“key”的重复条目“text”)。我做错了事。
在这里我将解释我的代码。在那之前,我已经读过,为了使用id_unique[tablename.tablefield],您必须首先为该特定字段设置一个唯一的ID,这就是我所做的。
您能更好地向我解释发生了什么吗?
这是模型中的函数:
function save_users() {
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
$sql = $this->db->query("INSERT INTO users (username, password, email) VALUES ('".$username."', '".$password."', '".$email."') ");
}
这里是控制器:
public function index() {
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules("username","username","trim|required|xss_clean|callback_username_check");
$this->form_validation->set_rules("password","password","trim|required|md5");
$this->form_validation->set_rules("email","email","trim|required|valid_email|is_unique[users.email]");
if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
}
public function username_check($str) {
if ($str != "admin") {
$this->load->model("new_model");
$this->form_validation->set_message("username_check", "The %s field cannot have username Test ");
$this->form_validation->set_message("is_unique[users.email]","Errore!");
$this->new_model->save_users();
return FALSE;
} else {
return TRUE;
}
}
【问题讨论】:
标签: php mysql codeigniter