Codeigniter - Model - Duplicate Entry Alert
codeigniter, mysql, php
Solution
It's very simple....Just change
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
with is_unique rule
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[TABLENAME.COLUMNNAME]');
TABLENAME - Your table name COLUMNNAME - Your relevant column name which contains Email.Ex:-email
Problem
made a simple subscription form submit email and city only email id i set unique but if email id is already in database it shows error i need to add alert here if data already in database alert to user but dont show the complete details like this. A Database Error Occurred Error Number: 1062 Duplicate entry 'abc@abc' for key 2 INSERT INTO `users` (`email`, `city`) VALUES ('abdullah@gaya.com', 'jeddah') Filename: /home/content/f/a/h/fahadghafoor/html/fahad/models/users_model.php Line Number: 12 Model file user_model.php ``` <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Users_model extends CI_Model { function create_member() { $new_member_insert_data = array( 'email' => $this->input->post('email'), 'city' => $this->input->post('city'), ); $insert = $this->db->insert('users', $new_member_insert_data); return $insert; }//create_member } ``` Controller file user.php ``` <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class User extends CI_Controller { function __construct() { parent::__construct(); $this->load->helper('form'); $this->load->helper('url'); $this->load->library('user_agent'); $this->load->library('form_validation'); } public function create_user() { // field name, error message, validation rules $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email'); $this->form_validation->set_rules('city', 'City', 'trim|required'); if ($this->form_validation->run() == FALSE) { if ($this->input->post("lang") == "en") { if ($this->agent->is_mobile()) { $this->load->view('m_english_signup'); } else { $this->load->view('d_english_signup'); } } //if ($this->agent->is_mobile()) else { if ($this->agent->is_mobile()) { $this->load->view('m_arabic_signup'); } else { $this->load->view('d_arabic_signup'); } } } else { $this->load->model('Users_model'); if ($query = $this->Users_model->create_member()) { if ($this->input->post("lang") == "en") { if ($this->agent->is_mobile()) { $this->load->view('m_english_thanks'); } else { $this->load->view('d_english_thanks'); } } else { if ($this->agent->is_mobile()) { $this->load->view('m_arabic_thanks'); } else { $this->load->view('d_arabic_thanks'); } } } } } } ```