Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana]ORM - UPDATE
soszin
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 26.10.2012
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam,

Zwracam się do was z nasŧępującym problemem.

Robie pewien importer książek, chciałem zrobić do niego statystyki. Chodzi mi ile rekordów zostało zaaktualizowanych.

Z tego co mi się wydaje ORM nie aktualizuje rekordu jeśli nie zostały wprowadzone zmiany np.

$updateBooks->values($to_update);
$update_book = $updateBooks->save();

Myślałem ze save() zwróci mi TRUE lub FALSE jesli rekord został zmodyfikowany lub nie, jednakże jak to orm wypluwa wszystko co sie da, lecz nie to co mnie interesuje.
probowałem jeszcze korzystac z metody saved(); lecz tez nic. (chyba ze zle robilem)

Moje pytanie brzmi: Jak sprawdzić czy na danym rekordzie została wykonana jakaś zmiana czy też nie.

Pozdrawiam i czekam na odpowiedzi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Do metody values() przekaż dane jako stringi, pola w bazie niech będą odpowiednich typów. Czyli przykładowo nie:
values(array('x' => 1))
tylko:
values(array('x' => '1'))
gdzie x to kolumna integer.

Swoją drogą: po co do takiej synchronizacji zaprzęgasz ORM? Dużo bardziej optymalnie byłoby:
1. LOAD DATA do tymczasowej tabeli z csv.
2. UPDATE istniejących rekordów.
3. INSERT nowych.
4. DELETE usuniętych.
Całość zamykasz zatem w maksymalnie 4 zapytaniach robiąc wszystko po stronie bazy danych.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 18:11