如何防止在codeigniter中重复输入? 以下是代码: -
$params = array('value1' => 'test_value', 'value2' => 'test_value');
$this->db->insert('table_name',$params);
答案 0 :(得分:1)
防止重复条目插入数据库的两种方法,
<方法1您可以在控制器文件中使用$this->form_validation->set_rules
,您可以验证输入值
示例:
$this->form_validation->set_rules('value1', 'value1 field label', 'trim|required|xss_clean|is_unique[table_name.value1]');
$this->form_validation->set_rules('value2', 'value2 field label', 'trim|required|xss_clean|is_unique[table_name.value2]');
$this->form_validation->set_message('is_unique', '%s is already exists');
if ($this->form_validation->run() === TRUE){
// load your model function here
$this->model_name->insert();
}
public function insert(){
$postdata = $this->input->post();
extract($postdata);
$this->db->insert('table_name', compact('value1','value2'));
return ($this->db->trans_status()) ? $this->db->insert_id() : false;
}
<方法2
在插入
之前验证模型文件中的值$params = array('value1' => 'test_value', 'value2' => 'test_value');
extract($postdata);
if($this->db->limit(1)->get_where('table_name', compact('value1'))->num_rows() === 0 && $this->db->limit(1)->get_where('table_name', compact('value2'))->num_rows() === 0){
$this->db->insert('table_name', $params);
}
return ($this->db->trans_status()) ? $this->db->insert_id() : false;
答案 1 :(得分:-1)
模型申请
function isVarExists($ table,$ var){$ query = $ this-&gt; db - &gt; select('*') - &gt; where($ var) - &gt; get($ table) - &gt; NUM_ROWS(); return $ query; }
控制器
function validate_user_email(){$ uName ['email'] = $ this-&gt; input-&gt; post('email'); $ isUNameCount = $ this-&gt; User_model-&gt; isVarExists('user',$ uName); if($ isUNameCount&gt; 0){echo'false'; } else {echo'true'; }}