Codeigniter: Query UPDATE in PHP create new row instead update

Viewed 32

I'm using codeigniter, and I'm trying to UPDATE the database, but instead it always creates a new row and doesn't update the existing one.

I ask for your help because I can't understand where the problem is, the query in heidisql works without problems.

Controller:

public function editClientSubmit()
{
    $params = [
        'id_client' => $this->request->getPost('id_client'),
        'code' => $this->request->getPost('code'),
        'name' => $this->request->getPost('name'),
        'nif' => $this->request->getPost('nif'),
        'address' => $this->request->getPost('address'),
        'postal_code_1' => $this->request->getPost('postal_code_1'),
        'postal_code_2' => $this->request->getPost('postal_code_2'),
        'city' => $this->request->getPost('city'),
    ];

    $db = db_connect();
    $db->query(
        "UPDATE clients
        SET code = :code:, name = :name:, nif = :nif:, address = :address:,
        postal_code_1 = :postal_code_1:, postal_code_2 = :postal_code_2:, city = :city:
        WHERE id_client = :id_client:",
        $params
    );
    $db->close();
}

View:

 <?php
        helper("form");
        echo form_open('main/editclientsubmit');
        ?>
        <input type="text" name="id_client" value="<?= $client->id_client ?>">
        <div class="form-group">
            <input type="text" name="code" placeholder="Código" value="<?= $client->code ?>">
            <input type="text" name="name" placeholder="Nome" value="<?= $client->name ?>">
            <input type="text" name="nif" placeholder="NIF" value="<?= $client->nif ?>">
            <input type="text" name="address" placeholder="Morada" value="<?= $client->address ?>">
            <input type="text" name="postal_code_1" placeholder="Código Postal" value="<?= $client->postal_code_1 ?>">
            <input type="text" name="postal_code_2" placeholder="Código Postal 2" value="<?= $client->postal_code_2 ?>">
            <input type="text" name="city" placeholder="Cidade" value="<?= $client->city ?>">
        </div>
        <input type="submit" value="Actualizar">

        <?=
        form_close();
        ?>
0 Answers
Related