更新数据库时,Codeigniter中的对象不受影响

时间:2018-07-02 05:16:38

标签: php mysql codeigniter codeigniter-3 codeigniter-query-builder

我一直在努力做一些CRUD,但我没有错。 但是,当我更新数据时,数据库中没有任何影响,这里的代码

表格:歌曲 栏位: id_song, id_album, 歌曲, 作者, 作曲家

我的模型的代码如下:

RewriteEngine on
RewriteRule \config.js$ - [R=404]

查看:

function Tampil_song_admin(){
 return $this->db->get('songs');
}

function Input_song($data,$table){
 $this->db->insert($table,$data);
}

function edit_song($where,$table){  
 return $this->db->get_where($table,$where);
}

function update_song($where,$data,$table){
 $this->db->where($where);
 $this->db->update($table,$data);
}

function delete_song($where,$table){
 $this->db->where($where);
 $this->db->delete($table);
} 

这是给控制器的:

                 <?php foreach($songs as $data){ ?> 
<form action="<?php echo base_url('/index.php/Admin_song/update_song'); ?>" method="post">

            <h4 class="header-title m-t-0 m-b-30"></h4>

                <div class="form-group">
                    <label for="userName">id_songs </label>
                    <input type="text" name="id_song" parsley-trigger="change" required
                           value="<?php echo $data->id_song; ?>" 
                           class="form-control" disabled="" id="userName">
                </div>                                              
                <div class="form-group">
                    <label for="userName">id_album</label>
                    <input type="text" name="id_album" parsley-trigger="change" required
                           value="<?php echo $data->id_album; ?>"  class="form-control" id="userName">
                </div>

                <div class="form-group">
                    <label for="userName">Songs</label>
                    <input type="text" name="song" parsley-trigger="change" required
                           value="<?php echo $data->song; ?>"  class="form-control" id="userName">
                </div>
                <div class="form-group">
                    <label for="userName">Author</label>
                    <input type="text" name="author" parsley-trigger="change" required
                           value="<?php echo $data->author; ?>"  class="form-control" id="userName">
                </div>
                <div class="form-group">
                    <label for="userName">Composer</label>
                    <input type="text" name="composer" parsley-trigger="change" required
                           value="<?php echo $data->composer; ?>"  class="form-control" id="userName">
                </div>


                <button type="submit" class="btn btn-success waves-effect w-md waves-light m-b-5">Update</button>
                <button type="button" class="btn btn-danger waves-effect w-md waves-light m-b-5">Reset</button>
            </form>

            <?php } ?>

看到我没什么错,但是当我编辑并尝试更新一些不受影响的数据时。

1 个答案:

答案 0 :(得分:1)

希望这对您有帮助:

您已在id_song中禁用了form输入类型,只需从其中删除disabled attr

由于此原因,您无法在您的id_song方法中获得update_song的帖子值,因此又没有进入您的where子句,所以

id_song输入应该是这样的:

 <div class="form-group">
    <label for="userName">id_songs </label>
    <input type="text" 
           name="id_song" 
           value="<?php echo $data->id_song; ?>" 
           class="form-control"  id="userName">
 </div>   

或者如果您不想这样显示它,则将其隐藏起来:

    <input type="hidden" 
           name="id_song" 
           parsley-trigger="change" required
           value="<?php echo $data->id_song; ?>" 
           class="form-control"  id="userName">