代码点火器将带有字符串的 ID 号插入数据库


Codeigniter insert ID number with string into the database

我是编码点火器的新手,在插入带有字符串的ID号时遇到问题。谁能帮我如何将其保存到数据库中?

例如 PM0001

每次我将其保存到数据库中时,我的列 ID 中只出现数字"1",但是当我从数据库中检索它时,它会在 html 表中显示 ID 号"PM0001"。

我的控制器:

public function enroll(){
    $data['title'] = "enroll";
    $this->load->model('addschool_model');
    $data['school'] = $this->addschool_model->getAll();
    $this->load->view('admin/view_enroll', $data);
    $this->form_validation->set_rules('fname', 'First name', 'required');
    $this->form_validation->set_rules('lname', 'Last name', 'required');
    $this->form_validation->set_rules('contact', 'Contact', 'required');
    $this->form_validation->set_rules('address', 'Address', 'required');
    if($this->form_validation->run()==FALSE) {
        $this->load->view('admin/view_enroll');
    } else {
        $this->load->model('stud_model');
        $udata['school'] = $this->input->post('school');
        $udata['pword'] = $this->input->post('password');
        $udata['fname'] = $this->input->post('fname');
        $udata['lname'] = $this->input->post('lname');
        $udata['contact'] = $this->input->post('contact');
        $udata['address'] = $this->input->post('address');
        $res = $this->stud_model->insert_user_to_db($udata);
        if ($res){
            redirect('admin/enroll');
        }
    }
}

我的模型:

public function insert_user_to_db($udata) {
    return $this->db->insert('students', $udata);
}

我的观点:

<tr class="data" >
    <td><?php echo "PM00".$u_key->ID; ?></td>
    <td><?php echo $u_key->PWORD; ?></td>
    <td><?php echo $u_key->SCHOOL; ?></td>
    <td><?php echo $u_key->FNAME; ?></td>
    <td><?php echo $u_key->LNAME; ?></td>
    <td><?php echo $u_key->CONTACT; ?></td>
    <td><?php echo $u_key->ADDRESS; ?></td>
    <td width="40" align="left"><a id="action" href="#" onClick="show_confirm('edit',<?php echo $u_key->ID; ?>)"><span class="glyphicon glyphicon-edit" aria-hidden="true"></a></td>
    <td width="40" align="left"><a id="action" href="#" onClick="show_confirm('delete',<?php echo $u_key->ID; ?>)"><span class="glyphicon glyphicon-remove" aria-hidden="true"></a></td>
</tr>

我认为我的视图还可以,因为表格显示了我想要显示的内容。我只希望 ID 在我的数据库中显示与我的视图中的表相同。

数据库中的 ID:ID = 1我的表视图中的 ID:ID = PM001

我真的很感激你的帮助。谢谢!

尽管这是一个非常糟糕的问题,因为为了理解这一点,您需要了解基础知识。

您可能确实将id设置为自动递增,这意味着每次插入新记录时,它都会递增1。要跟进,请参阅此处。

这意味着您将整数(整数)存储在数据库(表)中,因此字符串PM不会出现。您通过联系字符串解决了问题;代码中的示例 <td><?php echo "PM00".$u_key->ID; ?></td> .

您的解决方案根本不好,因为当表中有 10 条记录时会发生什么?好吧,与其显示PM010,不如PM0010我敢打赌你不希望那样。

要解决前导零的问题,请使用函数 str_pad();

<td><?php echo "PM".str_pad($u_key->ID, '3', '0', STR_PAD_LEFT);?></td>

为了确保您理解,您将不会在表格中看到PM001和PM002等!相反,您将看到简单的整数 1、2、3...