当数据已经使用CodeIgniter存在时,停止插入到数据库中



当数据已经存在时,我想知道如何防止插入数据库。以及如何使用一条消息来制作一个单击窗口,该消息使用户插入的数据已经在数据库内。

我如何从视图中获得输入有点像这样:

<form method="post" action="<?php echo base_url();?>index.php/Controller/insertdata">    
    <h3>Select Course Code:</h3>
    <select id="employeeid" name="empid">
        <option value="" selected="selected">---Select Course Code---</option>
        <?php foreach ($e_id as $row4): ?>
        <option label="<?php echo $row4['EmpID']; ?>" value="<?php echo $row4['EmpID']; ?>" <?php echo set_select('course', $row4['EmpID'], False); ?>> <?php echo $row4['EmpID'] ; ?> </option>
        <?php endforeach; ?>
    </select>
    <input type="Submit" value="Submit" id="submite_id">  

将数据从数据库中获取到选择标签中。我的数据库具有员工ID,员工名称,部门代码和作业。

这是我的控制器:

public function insertdata() {
    $this->model->setdata();
    $data['results'] = $this->model->emp_all();
    $this->load->view('edit_view', $data);
}

它将数据插入数据库,并将用户重定向到视图。

最后,这是我在模型中插入数据库的方式:

public function setData(){
    $f1 = $_POST['empid'];
    $f2 = $_POST['empname'];
    $f3 = $_POST['deptcode'];
    $f4 = $_POST['assignment'];
$this->db->query("INSERT INTO employeeDB VALUES('$f1', '$f2', '$f3', '$f4')");
}

捕获是,用户应该无法分配员工ID,并在同一部门的重复作业中命名。

任何答复,评论和洞察力都将不胜感激。预先感谢!

您可以使用INSERT IGNORE INTO查询。如果数据已经存在,它不会在表中插入记录。

请在这里看。希望这会有所帮助。

您可以使用Codeingiter form_validation库。

$this->load->library('form_validation');
$this->form_validation->set_rules('empid', 'Employee ID', 'required|trim|employeeDB.empid');

最后一个参数employeeDB.empid用作table_name.column_name。因此,您的控制器将如下。

public function insertdata() {
    $this->load->library('form_validation');
    $this->form_validation->set_rules('empid', 'Employee ID', 'required|trim|employeeDB.empid');
    if ($this->form_validation->run() == FALSE) {
        // Form Validation Failed. 
        $this->load->view('myform');
    } else {
        // Form Validation Passed. 
        $this->model->setData();
        $data['results'] = $this->model->emp_all();
        $this->load->view('edit_view', $data);
    }        
}

在SQL Server使用中,可以使用NotExist来保护插入

最新更新