我在db中更新一个表时遇到问题。我总是使用相同的方法,我没有问题。虽然在这种情况下我有一个问题......
代码:
观点:
<fieldset>
<legend>Modifica Dati Check-in Cliente</legend>
<?php
$passeggeri='placeholder="Passeggeri"';
$animali='placeholder="Animali"';
$note='placeholder="Note"';
echo form_open('site/esegui_modifica_record_check_in');
echo form_hidden('id',$id[0]->id);
echo form_hidden('rif_parcheggio',$id[0]->rif_parcheggio);
echo form_input('Passeggeri',set_value('passeggeri',$id[0]->passeggeri),$passeggeri);
echo form_input('Animali',set_value('animali',$id[0]->animali),$animali);
echo form_input('Note',set_value('note',$id[0]->note),$note);
?> <br/> <input type="datetime-local" name="data_in_inserita" value="<?php echo strftime('%Y-%m-%dT%H:%M', strtotime($id[0]->data_in));?>" /> <?php
echo form_submit('submit','Modifica');
echo form_close();
?>
</fieldset>
控制器:
function esegui_modifica_record_check_in() {
$this->load->model('membership_model');
if($query = $this->membership_model->esegui_modifica_record_check_in())
{
$this->load->view('check_in_auto_succesful');
}
else
{
$this->load->view('admin');
}
}
模型:
function esegui_modifica_record_check_in() {
$update_record_check2= array (
'passeggeri' => $this->input->post('passeggeri'),
'animali' => $this->input->post('animali'),
'note' => $this->input->post('note'),
'data_in' => $this->input->post('data_in_inserita')
);
$id=$this->input->post('id');
$this->db->where('id',$id);
$insert = $this->db->update('check2', $update_record_check2);
return $insert;
}
执行查询,但修改后的字段的值更新为零(0)字符。
这很奇怪!这是我对codeigniter
的更新功能的第一个问题我没有一个明确的想法。请你帮助我好吗? 非常感谢
通过
答案 0 :(得分:0)
调试的第一件事是确保将值实际传递到模型方法中。首先在控制器上或模型内部进行调试:
控制器:
function esegui_modifica_record_check_in()
{
var_dump($this->input->post());
// rest of codes
}
OR
型号:
function esegui_modifica_record_check_in()
{
var_dump($this->input->post());
// rest of codes
}
然后,假设你尚未修复它。输入name=""
echo form_input('Passeggeri',set_value('passeggeri',$id[0]->passeggeri),$passeggeri);
'passeggeri' => $this->input->post('passeggeri'),
// Passeggeri !== passeggeri
echo form_input('Animali',set_value('animali',$id[0]->animali),$animali);
'animali' => $this->input->post('animali'),
// Animali !== animali
echo form_input('Note',set_value('note',$id[0]->note),$note);
'note' => $this->input->post('note'),
// Animali !== animali
你也应该考虑到这一点。你需要遵循相同的大小写字母。将它们设为相同
或者:
echo form_input('Passeggeri',
$this->input->post('Passeggeri')
或者
echo form_input('passeggeri',
$this->input->post('passeggeri')
旁注:
正如我上面的建议,我只是简单地使用普通表格。
<form method="POST" action="<?php echo site_url('site/esegui_modifica_record_check_in'); ?>">
<input type="text" name="passeggeri" value="<?php echo $id[0]->passeggeri; ?>" placeholder="Passeggeri" />
<!-- and other text box inputs -->
</form>