PDO - Zwiększanie wartości w kolumnie

PDO - Zwiększanie wartości w kolumnie
axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 23 godziny
  • Lokalizacja:Warszawa
  • Postów:2251
0

Czy za pomocą PDO jest możliwe zwiększanie wartości danej kolumny ? Przykładowe zapytanie nizej

Kopiuj
UPDATE categories SET ip=:ip, depth=:depth ,pos=:pos, parentID=:parentID WHERE id=:id

Kolumna depth jest typu całkowitego.
Chciałbym przenosząc kategorię zwiększać lub zmiejszać automatycznie depth. Używam do tego instrukcji bindValue

Kopiuj
$stmt->bindValue(':depth', 'depth+1');

Czy komuś się takie coś udało ?
Gdyby to był pojedynczy element po prostu pobierałbym go i ustawiał ręcznie daną wartość - natomiast tutaj mam zamiar aktualizować wiele rekordów jednocześnie.

SM
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 9 lat
  • Postów:2
0

A nie prościej tak?

Kopiuj
UPDATE categories SET ip=:ip, depth=depth + 1 ,pos=:pos, parentID=:parentID WHERE id=:id
axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 23 godziny
  • Lokalizacja:Warszawa
  • Postów:2251
0

Prościej, tylko chodzi o to te +1 jest parametrem i zmienia się - do tej pory robię to tak

Kopiuj
UPDATE categories SET ip=:ip, depth=$depth ,pos=:pos, parentID=:parentID WHERE id=:id

gdzie zmienną $depth ustawiam sobie odpowiednio wcześniej. Tylko takie rozwiązanie nie wygląda dla mnie ładnie - nie chciałbym mieszać sposobów przypisywania wartości. Jeśli to nie jest możliwe - ok, jakoś się przemęczę. Ciekawi mnie tylko czy jest jakiś sposób z wykorzystaniem PDO

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Rzeszów
1

Nie korzystam z PDO, ale krótka wizyta w manualu i do głowy przychodzi mi tylko

Kopiuj
UPDATE categories SET ip=:ip, depth=depth+:depth, pos=:pos, parentID=:parentID WHERE id=:id
Kopiuj
//http://php.net/manual/pl/pdostatement.bindvalue.php
$stmt->bindValue(':depth', 666, PDO::PARAM_INT); // zamiast 666 - Twoja zmienna

edytowany 2x, ostatnio: dzek69
axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 23 godziny
  • Lokalizacja:Warszawa
  • Postów:2251
0

Dzięki za pomoc :) proste rozwiązanie - a ja kombinowałem jak koń pod górę :) chociaż sam ustawiłem to jako

Kopiuj
depth=depth+:depth
dzek69
tak, u mnie był błąd składniowy oczywiście, bo depth=+666 ustawiłoby wartość na 666, a nie o 666 ją zwiększyło.. Ale złapałeś co chciałem przekazać, to dobrze ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.