Jak stwierdzić, kiedy aktualizacja MySQL była udana w porównaniu do faktycznie zaktualizowanych danych?Jak stwierdzić, kiedy aktualizacja MySQL była udana w porównaniu do faktycznie zaktualizowanych danych?
Przykład:
TABLE
id city_name
1 Union
2 Marthasville
Jeżeli uruchomić następujące:
$data = array('city_name', 'Marthasville');
//update record 2 from Marthasville to the same thing, Marthasville.
$this->db->where('id', 2);
$this->db->update('table', $data);
if($this->db->affected_rows() > 0)
{
//I need it to return TRUE when the MySQL was successful even if nothing was actually updated.
return TRUE;
}else{
return FALSE;
}
ten powróci TRUE
każdym oświadczenie Update jest udane, ale FALSE gdy nie wiersze zostały faktycznie aktualizowany.
Potrzebuję go, aby zwrócić TRUE
za każdym razem, gdy instrukcja UPDATE została pomyślnie wykonana, nawet jeśli faktycznie nie zmienia żadnych rekordów.
Właśnie aktualizowane raz moje pytanie do bardziej wyraźnie stwierdzić, problem mam z użyciem mysql_affected_rows(). Żałuję, że nie napisałem tak szybko mojego pytania: S – zechdc
Uważam, że odpowiedź JLeafgle była nadal poprawna. mysql_affected_rows zwróci -1, jeśli ostatnie zapytanie nie powiodło się, w przeciwnym razie powróci> = 0. Zakładając, że to jest to, czego szukasz, to po prostu zmień instrukcję if na ... "if ($ this-> db-> affected_rows()> = 0) " –
Masz rację @Jon Stirling. Zaktualizowałem odpowiedź Jleagle'a, aby odzwierciedlić Twoją sugestię, ale nie mogę zatwierdzić edycji, więc gdyby ktoś inny mógł, to byłoby wspaniale. Dzięki! – zechdc