Php 按id更新codeigniter中的DB行
我正在尝试使用ID更新DB中的一行。我意识到可以通过URI段进行更新,但变量$GET还有另一种方法。由于某种原因,它无法更新 另一个问题是,如果URI段不工作,为什么要执行它?示例代码:if($this->uri->segment(3))==false) 由于某种原因,这种情况不起作用。谢谢助理 模型:Php 按id更新codeigniter中的DB行,php,codeigniter,Php,Codeigniter,我正在尝试使用ID更新DB中的一行。我意识到可以通过URI段进行更新,但变量$GET还有另一种方法。由于某种原因,它无法更新 另一个问题是,如果URI段不工作,为什么要执行它?示例代码:if($this->uri->segment(3))==false) 由于某种原因,这种情况不起作用。谢谢助理 模型: public function updata_user($data) { $this->db->where('id', $this->uri->segment(3))
public function updata_user($data) {
$this->db->where('id', $this->uri->segment(3));
$this->db->update('users', $data);
}
}
控制员:
public function save() {
$data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'password' => $this->hash($this->input->post('password'),TRUE)
);
if ($this->uri->segment(3) === false) {
$this->users_model->insert_user($data);
redirect('users/index');
}
else {
$result = $this->users_model->updata_user($data);
if ($result) {
redirect('users/index');
}
}
}
观点:
<?php echo validation_errors(); ?>
<?php echo form_open('users/save'); ?>
<table class="table">
<tr>
<td>Name</td>
<td><?php echo form_input('name', set_value('name', $user->name)); ?></td>
</tr>
<tr>
<td>Email</td>
<td><?php echo form_input('email', set_value('email', $user->email)); ?></td>
</tr>
<tr>
<td>Email</td>
<td><?php echo form_input('id', set_value('id', $user->id)); ?></td>
</tr>
<tr>
<td>Password</td>
<td><?php echo form_password('password'); ?></td>
</tr>
<tr>
<td>Confirm password</td>
<td><?php echo form_password('password_confirm'); ?></td>
</tr>
<tr>
<td></td>
<td><?php echo form_submit('submit', 'Save', 'class="btn btn-primary"'); ?></td>
</tr>
</table>
<?php echo form_close();?>
名称
电子邮件
电子邮件
密码
确认密码
您可以将id放入隐藏输入中,并使用$this->input->post('id')在模型中使用它
看法
您可以使用get或post方法发送id数据,也可以将uri段作为参数函数save($id){}传递
<tr>
<td>id</td>
<td><?php echo form_hidden('id',$user->id); ?></td>
</tr>
public function updata_user($data)
{
$this->db->where('id', $this->input->post('id'));
$this->db->update('users', $data);
}