tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

aku hodnotu vracia dibi::query()?

před 7 lety

brazvo
Člen | 15
+
0
-

Mozete mi niekto prosim povedat, co vracia dibi::query() po UPDATE?

ak vykonam

dibi::query("UPDATE table SET stlpec = 'hodnota' WHERE id = %i", $id);

a v tabulke ma zaznam s ID = $id rovnaku hodnotu ako chcem vlozit, tak sa vracia FALSE. Ak ukladam odlisnu hodnotu tak sa vrati TRUE.

cize ak by som vykonal 2× po sebe tento prikaz, tak sa mi vrati 2× iny vysledok:

// v tabulke ma stlpec hodnotu napr. NULL
$res = dibi::query("UPDATE table SET stlpec = 'hodnota' WHERE id = %i", $id); // $res = 1 (TRUE)
$res = dibi::query("UPDATE table SET stlpec = 'hodnota' WHERE id = %i", $id); // $res = 0 (FALSE)

driver je MySQL

před 7 lety

LuKo
Člen | 114
+
0
-

UPDATE vrací počet ovlivněných řádek. Pokud zapisuješ hodnotu do sloupce, kde už tato hodnota je, dostaneš 0 ovlivněných řádků. Naopak když zapomeneš podmínku, pak dostaneš číslo limitně se blížící počtu řádků tabulky.

// v tabulke ma stlpec hodnotu napr. NULL
$res = dibi::query("UPDATE table SET stlpec = 'hodnota' WHERE id = %i", $id); // $res = 1
$res = dibi::query("UPDATE table SET stlpec = 'hodnota' WHERE id = %i", $id); // $res = 0
$res = dibi::query("UPDATE table SET stlpec = 'hodnota' WHERE id = %i", $id); // $res = 0
$res = dibi::query("UPDATE table SET stlpec = 'hodnota' WHERE id = %i", $id); // $res = 0


// v tabulke ma stlpec hodnotu napr. NULL
$res = dibi::query("UPDATE table SET stlpec = 'hodnota'"); // $res = 237
$res = dibi::query("UPDATE table SET stlpec = 'hodnota'"); // $res = 0

před 7 lety

brazvo
Člen | 15
+
0
-

Aha, dik. No ja som myslel, ze to vrati TRUE alebo FALSE podla toho, ci sa zapis podari, alebo nepodari.