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();
?>