Ich benutze Codeigniter 3.0.6, um ein System zu erstellen. Normalerweise verwende ich affected_rows(), um zu überprüfen, ob meine Datenbank aktualisiert ist oder nicht.CI affected_rows gibt immer 0 zurück, auch nach dem Update
function update($id=0,$data=array())
{
$this->db->where($this->key, $id);
$this->db->update($this->table,$data);
if($this->db->affected_rows() > 0)return TRUE;
else return FALSE;
}
Problem ist, wenn keine Aktualisierung gefunden wird, wird es 0 zurückgeben. Da ich in meinem Code zwischen Update und No Update unterscheiden möchte, verwende ich diese Lösung.
function update($id=0,$data=array())
{
$this->db->trans_start();
$this->db->where($this->key, $id);
$this->db->update($this->table,$data);
$this->db->trans_complete();
if ($this->db->affected_rows() > 0) {
return TRUE;
} else {
if ($this->db->trans_status() == FALSE) {
return FALSE;
}
return 'No Update';
}
}
Aber auch nach dem aktualisierten affected_rows immer int (0) zurückgeben. Was ist der Grund? Vielen Dank.
btw .. Sie haben nur eine Aussage, warum hast du es in Transaktion? –
@RahulM Ich möchte zwischen aktualisiert und keine Aktualisierung unterscheiden, ich suche online nach Lösung und das ist, was ich bis jetzt ... – shevado