奇怪的表更新codeigniter $ this-> db-> update

时间:2015-04-14 01:42:52

标签: php mysql database codeigniter

我在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

的更新功能的第一个问题

我没有一个明确的想法。请你帮助我好吗? 非常感谢

通过

1 个答案:

答案 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>