【问题标题】:codeigniter 4 cant update databasecodeigniter 4无法更新数据库
【发布时间】:2021-09-20 20:17:27
【问题描述】:

我的代码不会更新数据库,即使根本没有错误。请帮帮我。

控制器代码

    public function update(){
        $id = $this->request->getpost('nim');
        $data =[
            'nama' => $this->request->getpost('nama'),
            'kelamin' => $this->request->getpost('kelamin'),
            'tempatlahir' => $this->request->getpost('tempat'),
            'tanggallahir' => $this->request->getpost('tanggal'),
            'alamat' => $this->request->getpost('alamat'),
            'telepon' => $this->request->getpost('telp')
        ];
        $siswa = new Modelsiswa();
        $update = $siswa -> updatedata($data, $id);
        if($update){
            return redirect()->to('/siswa');
        }
    }

查看代码

<body>
    <?=form_open('siswa/update') ?>
    <table>
        <tr>
            <td>NIM: </td>
            <td>
                <input type="text" name="nim" maxlength="7" readonly value="<?= $nim?>">
            </td>
        </tr>
        <tr>
            <td>Nama Lengkap</td>
            <td>
                <input type="text" name='nama' size='50' value="<?= $nama?>">
            </td>
        </tr>
        <tr>
            <td>jenis kelamin: </td>
            <td>
                <input type="radio" name="kelamin" value="L" <?php if($kelamin=='L')echo "checked";?> >Laki-Laki
                <input type="radio" name="kelamin" value="P" <?php if($kelamin=='P')echo "checked";?> >Perempuan
            </td>
        </tr>
        <tr>
            <td>Tempat/Tanggal Lahir</td>
            <td>
                <input type="text" name="tempat" size="30" value="<?=$tempat?>"> / <input type="date" name="tanggal" value="<?=$tanggal?>">
            </td>
        </tr>
        <tr>
            <td>ALamat :</td>
            <td>
                <textarea name="alamat" id="" cols="50" rows="5"><?=$alamat?></textarea>
            </td>
        </tr>
        <tr>
            <tr>Telp: </tr>
            <td>
                <input type="text" name="telp" pattern="{0-9}+" value="<?=$telp?>">
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <input type="submit" value="simpan">
            </td>
        </tr>
    </table>
    <?=form_close();?>
</body>

更新模型代码

    function updatedata($data, $id){
        return $this->db->table('siswa')->update($data, ['id_siswa', $id]);
    }

我检查了很多次,但我认为这段代码没有任何问题,但仍然无法更新数据库。我该如何解决这个问题?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    $this-&gt;request-&gt;getpost()正确使用$this-&gt;request-&gt;getPost()

    function updatedata($data, $id){
        return $this->db->table('siswa')->update($data, ['id_siswa', $id]);
    }
    

    上述模型中不存在'where'条件,无需使用return。

    function updatedata($data, $id){
       $this->db->table('siswa')->update()->set($data)->where('id_siswa', $id]);
    }
    

    【讨论】:

    • 它会输出一条错误消息,“您必须使用“set”方法来更新条目。”
    • 试试这个 $this->db->table('siswa')->update($data)->where('id_siswa', $id]);
    【解决方案2】:

    您需要更新此代码,您的模型函数中的数组格式错误

    function updatedata($data, $id){
        return $this->db->table('siswa')->update($data, ['id_siswa'=> $id]);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多